نام کی لمبائی

زیک

مسافر
مجھے یہ بات پسند نہ آئی کہ اردو میں اسم رکن صرف دس حروف یا کم کا ہونا چاہیئے۔ لہذا میں نے اس مسئلے کا حل ڈھونڈنے کی ٹھانی۔ کچھ محنت کے بعد پتہ چلا کہ localization اور internationalization اتنی آسان نہیں۔ بہت سے مسائل ہیں پی ایچ پی کے فنکشنز اور پروگرامرز کی عادات میں۔ یہاں یہ مسئلہ تھا کہ includes/functions.php میں ایک فنکشن ہے phpbb_clean_username جو لاگ ان کے وقت اسم رکن کو صحیح کرنے کا کام کرتا ہے۔ اس فنکشن میں substr استعمال ہوا ہے جو unicode پر کام نہیں کرتا کیونکہ وہ bytes پر کام کرتا ہے نہ کہ characters پر۔ یہ غلطی عام ہے۔ سو وہ ہمارے اسم رکن کی پہلی 25 بائٹ output کر رہا تھا جو عموما 12 یا 13 حروف بنتے ہیں۔ میں نے substr کی بجائے mb_substr ڈال دیا ہے جو یونیکوڈ جیسے multibyte character codes سے واقف ہے۔

اب آپ شوق سے 25 حروف تک کا نام رکھ سکتے ہیں۔

نبیل: آپ رجسٹریشن کے صفحے سے وارننگ کو گول کر سکتے ہیں۔
 

نبیل

تکنیکی معاون
میرے خیال میں یہ پہلی مرتبہ ہوا ہے کہ ہم میں سے کسی نے براہ راست php کو ہاتھ ڈالا ہے۔ بہت شکریہ زکریا۔ اس سے میری معلومات میں خاطر خواہ اضافہ ہوا ہے۔
 

فرضی

محفلین
نام کی لمبائی کا مسئلہ مجھے پشتو فورم پر بھی پیش آرہا ہے۔ اسے تبدیل کرنے کی اگر کچھ اور وضاحت کردی جائے تو مشکور رہوں گا۔
 

نبیل

تکنیکی معاون
فرضی، کیا تمہارے ویب ہوسٹ پر php کی mbstring ایکسٹینشن انسٹالڈ ہے؟ اگر ہاں تو کیا تمہاری فورم کے روٹ میں .htaccess فائل میں سٹرنگ اوور لوڈنگ آن ہے؟
 

فرضی

محفلین
فرضی، کیا تمہارے ویب ہوسٹ پر php کی mbstring ایکسٹینشن انسٹالڈ ہے؟ اگر ہاں تو کیا تمہاری فورم کے روٹ میں .htaccess فائل میں سٹرنگ اوور لوڈنگ آن ہے؟

جی نبیل بھائی php کی mbstring ایکسٹینشن تو شاید انسٹالڈ ہے لیکن .htaccess فائل میں سٹرنگ اوور لوڈنگ آن نہیں ہے اور جب اسے آن کیا جائے تو ‌Internal Server Error کا میسیج آتا ہے اور فورم کا پیج نہیں کھلتا
 

فرضی

محفلین
مجھے مبارک ہو;) نام کی لمبائی کا مسئلہ حل ہوگیا ہے۔۔

میں نے زکریا بھائی کے بتائے ہوئے نسخے کو آزمایا لیکن کوئی افاقہ نہ ہوا۔۔یعنی substr کی بجائے mb_substr لگا دیا لیکن بات نہیں بنی۔۔ میں نے بائٹس کو 25 سے بدل کر 40 کردیا تو لمبے نام کا مسئلہ نہیں رہا۔:)
 

فرضی

محفلین
سب آپکی شفقت کا نتیجہ ہے نبیل بھائی۔۔ بہت شکریہ

اور زکریا بھائی کا بھی سپیشل تھینکس کہ انہوں نے اپنی پہلی پوسٹ میں functions.php تک رسائی فرمائی جہاں تبدیلی کرنی تھی۔
 

دوست

محفلین
لو بھئی اللہ والیو میں نے یہی حل اردو کوڈر پر آزمایا ہے تو مسئلہ آگیا۔ فنکشن پی ایچ پی فائل کی اسی لائن پر ایرر میسج آنے لگا جب یہ فنکشن بدلا گیا تو۔ ایڈمن صاحب یعنی مسمی و فدری بقلم خود جب لاگ ان ہونے کی کوشش فرماتا تو یہ ایرر میسج آنے لگتا۔ چناچہ پھر اسے لوٹانا پڑا پرانے والے فنکشن پر۔ اصل میں ظہور احمد سولنگی صاحب کو رجسٹر کرنا تھا لیکن ان کا نام کٹ جاتا تھا۔ اب ان کے نام سے آخری حصہ جدا کرنا پڑا ہے۔۔۔کوئی حل؟
 

نبیل

تکنیکی معاون
mb_substr فنکشن استعمال کرنے کے لیے پی ایچ پی کی mbstring ایکسٹینشن انسٹال ہونا ضروری ہے۔ بہتر ہوگا کہ اردو پی ایچ پی بی بی کی requirements پر نظر ڈال لو۔

فرضی نے غالبا phpmyadmin میں جا کر یوزر نیم فیلڈ کی لمبائی بڑھا دی ہے۔ یہ نسخہ آزما کر دیکھو۔
 

دوست

محفلین
میں یہ ایکسٹنشن چیک کرتا ہوں۔ پی ایچ پی مائی ایڈمن سے کہاں جاکر بھلا؟ انھوں نے اسی لائن میں 25 کے ہندسے کو 40 سے بدل دیا تھا۔ فرضی کیا آپ تصدیق کرسکتے ہیں؟
 

فرضی

محفلین
شاکر بھائی میں نے زیک بھائی کے بتائے ہوئے طریقے پر ہی عمل کیا ہے بس mbstring کی جگہ byte ویلیو تبدیل کردی ہے ۔۔ آپ درج ذیل کا طریقہ آزما کر دیکھیں۔
functions.php میں جاکر phpbb_clean_username فائنڈ کریں تو ذیل کی لائن پر پہنچ جائیں گے۔

کوڈ:
function phpbb_clean_username()
{
	 = substr(htmlspecialchars(str_replace("\'", "'", trim())), 0, 25);
	 = phpbb_rtrim(, "\");
	 = str_replace("'", "\'", );

بس یہی پر 25 کو اپنے من پسند ہندسے سے بدل دیں۔۔ میں نے 40 سے بدلا ہے۔
 
Top