چگونگی فارسی سازی phpMyAdmin

اکـسـیـژن

پنج شنبه، 21 تیر 1386

چگونگی فارسی سازی phpMyAdmin

ارسال شده توسط امید در پی‌اچ‌پی در 12:13
حتما phpMyAdmin رو می شناسید، برنامه ای است برای مدیریت پایگاه داده در سمت سرور، مشابهی برای بانک های معروف و کاربردی دیگه براش ندیدم و سمت سرور بودنش کار رو در برخی موارد خیلی خیلی ساده می کنه. به هر حال این مطلب برای این ارسال نشده که محاسن و معایب phpMyAdmin رو بگم.

همیشه برام سوال بوده که چرا phpMyAdmin نمی تونه درست فارسی رو نمایش بده یا چرا نمی شه باهاش متن های فارسی وارد جداول کرد.

و نمی دونم چرا هیچ وقت، وقتی نمی ذاشتم تا ببینم مشکلش کجاست... چند روز پیش اومدم همچین همتی به خرج دادم و بالاخره بعد از حدود نیم ساعت از اولین برخورد هام با کد phpMyAdmin خط مورد دار رو پیدا کردم و عمل مشاهده و ویرایش و افزودن فارسی درست شد!!

برای این کار شما باید....


۱- فایل database_interface.lib.php در شاخهء libraries رو باز کنید.

۲- تابع PMA_DBI_postConnect را بیابید (در نسخهء من در خط ۸۰۸ قرار دارد)

۳- خطوط زیر که داخل تابع PMA_DBI_postConnect قرار دارند را کامنت کنید (این خطوط در سیستم من خطوط ۸۶۹ و ۸۷۰ می باشند)

PMA_DBI_query('SET NAMES ' . $mysql_charset . ';', $link,
PMA_DBI_QUERY_STORE);



۴- فایل را ذخیره کنید و از امکانات فارسی phpMyAdmin استفاده کنید :-)

به روز رسانی (چهارم مرداد): خوندن نظرات رو به همهء دوستان توصیه می کنم :-)

نظر ها (25) | دنبالک ها (0) | بیشترین خروج ها (0)

8270 hits

دنبالک ها
یک آدرس دنبالک برای ارسال

هیچ دنبالکی وجود ندارد

نظر ها
نمایش نظرات به صورت (خطی | بند کشی شده)

سلام
از این که می بینم بعد از مدتها مطلب گذاشتید ، خوشحالم :-)

امیدوارم فاصله ی زمانی مطلب بعدی با این مطلب کمتر از این باشه
----------------------
و اما سوال...
منظور اصلی سؤالم را توی چند تا سؤال بیان میکنم...
1- این دو خط کد چه کار میکنند؟ (کاری به شرایط مختلف ندارم، منظورم به طور کلی هست)
2- برداشتن این دو خط کد ، چه مشکلی رو از سر راه بر میداره؟
3- من تا به حال ، با مشکل خاصی در مورد زبان فارسی در phpMyAdmin ندیده بودم.آیا این مسئله ، مشکل خاصی را بر طرف میکند؟ یا این که همین مشکلاتی که عموما افرادی که تازه کارتر هستند را حل میکند؟ چون، تا جایی که اطلاع دارم (و استفاده میکنم) با تعیین کاراکترست مناسب، به این گونه مشکلات بر نمیخوریم! (؟)

ممنون به خاطر مطلبتون
منتظر مطالب بعدی هم هستم
موفق باشید.
#1 tabib_m در 1386-04-21 14:42 (پاسخ)
سلام، ممنونم.

۱- این دستور کاراکتر ست اتصال به پایگاه داده رو مشخص می کنه.

۲- بزرگ ترین مشکل اینجاست که تقریبا تمام برنامه های آماده ای که دیدم (مثل phpBB یا Vbulletin یا ...) از این دستور استفاده نمی کنند (چون کلا کاراکتر ست خاصی برای زبان ها شون ندارند)
برداشتن این دو خبر، phpMyAdmin رو با اکثر برنامه های موجود هماهنگ می کنه. فقط همین!!

۳- این قضیه ربطی به collation جداول و فیلد ها نداره هاااا. در هر collation ای این مشکل هست!

دارم سعی می کنم فعالیت ام رو توی انجمن ها کمتر کنم تا بتونم بیشتر به اینجا برسم. :-|
ممنونم و موفق باشید.
#1.1 امید (سایت) در 1386-04-21 15:10 (پاسخ)
ممنون.
2- میشه بیشتر توضیح بدید؟ منظور از "کاراکترست *خاص*" چیه؟
3- فکر کنم تازه فهمیدم که تا حالا چه اشتباه بزرگی میکردم. collation جداول و فیلد ها ربطی به کاراکترست نداره ؟!؟ پس تأثیرشون توی ثبت درست کاراکترها چیه؟ ( البته شاید ربطی به اصل موضوع نداشته باشه، اگر توضیح بدید که ممنون میشم ، اگر هم ربطی نداره ، فقط یک لینکی چیزی به من بدید که بخونم ، باز هم ممنون میشم :-) )
----
4- برداشتن این دو خط دستور ، ضرری که نمیزنه؟ (اعم از امنیتی و غیره) ( البته در مورد امنیت که بعید میدونم شما حرفی بزنید که باعث کاهش امنیت بشه :-) )

باز هم ممنون
موفق باشید.
#1.1.1 tabib_m در 1386-04-23 02:10 (پاسخ)
۲- منظورم اینه که مثلا اون برنامه نمی گه فایل زبان من باید «فلان» کاراکتر ست رو داشته باشه (مثلا یونیکد) و کاراکتر ست باید توی فایل زبان مشخص بشه، مثلا برای کاراکتر عربی باید با cp1256 متصل بشه و خوب.... یه مترجمی که داره اون فایل رو ترجمه می کنه، بعیده اینو بدونه!!!

۳- به هر حال این بحث ها در دنیای MySQL نسبتا جدیده...
نه، طبق صحبت و بررسی ای که چندی پیش با برادر آرمین۳۹۰ داشتیم، تقریبا به این نتیجه رسیدیم که collation فقط یه سری رفتار رو برای MySQL مشخص می کنه، مثلا collation ای به نام utf8_persian_ci باعث میشه که بتونی روی اون فیلد به صورت fulltext جستجوی عبارات فارسی رو انجام بدی.
اما کاراکتر ست به روش ذخیره سازی بایت ها توی جداول بر می گرده.

۴- نگاه کن، در اکثر موارد، برنامه هایی که نوشته شده اند از این دستور استفاده نمی کنند (حداقل برای backward compatibility) و برای اونها نباید از این دستور استفاده بشه و میشه کامنت اش کرد. اما برای سیستمی که درست/جدید طراحی شده و از این دستور استفاده می کنه (مثل همین سرندیپیتی که گزینه ای برای فعال و عیر فعال کردن همین دستور داره) باید از این دستور استفاده بشه :-)
خلاصه اینکه برداشتنش ممکنه سازگاری رو با برخی برنامه ها از بین ببره.

موفق باشید.
#1.1.1.1 امید (سایت) در 1386-04-23 03:27 (پاسخ)
باز هم ممنون
4- خوب، نمیشه تشخیص داد که دیتابیس مورد نظر از "کاراکترست خاص" استفاده میکنه یا نه؟ که در نهایت به وسیله ی یک دستور if else این دستور رو فعال و یا غیر فعال کنیم؟
اینجوری دیگه برنامه جامع میشه.
اصلا منطقی هست یا نه؟ چون ممکنه collation یک جدول با اصل دیتابیس فرق کنه و یا حتی مال یک فیلد با جدول فرق کنه.
#1.1.1.1.1 tabib_m در 1386-04-23 12:27 (پاسخ)
۴- بعید می دونم بشه :-)
خود phpMyAdmin در صفحهء اولش این مورد رو مشخص می کنه...
#1.1.1.1.1.1 امید (سایت) در 1386-04-23 13:41 (پاسخ)
ای ول به همتت پیرمرد :-D
#2 آرمین (سایت) در 1386-04-21 17:21 (پاسخ)
قشنگ یعی تعبیر عاشقانه اشکال .... ;-) :-P
#3 travertine (سایت) در 1386-04-23 07:16 (پاسخ)
سلام
همچنان مطالبی که مینویسی سردرد آوره!!! ما بالاخره نفهمیدیم این چرا کار نمیکنه و چرا باید اون دو خط رو حذف کرد تا کار کنه!!!
تا جایی که من میدونم جریان از این قراره که mysql بصورت default یک collation داره و charset هم (default charset) از روی این collation تعیین میشه یعنی اگر default collation سرور mysql شما utf8-persian-ci باشه charset شما میشه utf8 و این متغیر mysql_charset$ هم به همون mysql default charset اشاره میکنه (احتمالا!!!)
مدرک برای گفته های بالا: http://dev.mysql.com/doc/refman/5.0/en/charset-server.html
البته این تازه یک سوم ماجراست!!! این آقای (یا خانم!) charset ممکنه در فرم html یا در طول برنامه php شکل بگیره یا تغییر ماهیت بده یا هزار بلای دیگه سرش بیاد که فکر کردن بهش سرگیجه آوره بنابراین بهش فکر نمیکنم!!!
#4 آرش (سایت) در 1386-04-29 08:58 (پاسخ)
سلام

بحث سر اینه که mysql برای نمایش صحیح اطلاعات ، الزاما باید براش charset تعریف کرد.
از اونجایی که اطلاعات ثبت شده به وسیله ی غالب برنامه ها، charset انتخاب نکرده ن، بنابراین mysql اطلاعات رو نمیتونه به درستی نمایش بده
اون کد، کارش اینه که اطلاعات رو بر اساس charset انتخابی نمایش میده، و مادامی که برنامه ی شما charset ی براش انتخاب نشده باشه ، اطلاعات خراب نشون داده میشن، بنابراین برای این که phpMyAdmin هم بدون در نظر گرفتن charset اطلاعات رو نمایش بده (دقیقا مثل کد خروجی برنامه ی مورد نظر) نباید اون کد (که تعیین کننده ی charset برنامه هست) اجرا بشه. پس با حذف این کد، مشکل حل میشه.
ولی مشکل دیگه ای که به وجود میات ، اینه که این دفعه به جاش برنامه هایی که براشون charset تعریف میشه (معمولا برنامه های جدید) درست نمایش داده نمیشن :-) ، چون کد مورد نظر باید فعال باشه.

این چیزی بود که من فهمیدم، اگر مشکل داره ، ممنون میشم اصلاحش کنید.

موفق باشید.
#4.1 tabib_m در 1386-04-31 04:14 (پاسخ)
مختصر مشکلی داره که من هم تصمیم نداشتم در موردش حرفی بزنم چون خیلی احتمالات دیگه هم میاد وسط... حالا توضیح می دم.

نگاه کن، اگر set names نشه، یک کاراکتر ست پیش فرض برای «سرور» وجود داره که خوب هر جایی متفاوته و توی هر سروری فرق می کنه، اما وقتی MySQL رو به صورت پیش فرض نصب می کنند، این کاراکتر ست برابر latin1_swedish_ci می باشد و اگر «فرض» کنیم که می دونیم این کاراکتر ست پیش فرض چی هست، می تونیم توی صفحهء اول phpMyAdmin اون رو انتخاب کنیم... یعنی همین الان هم بدون پاک کردن این دو تا خط در قسمت مربوطه می تونی این مورد رو انتخاب کنی و فارسی ها رو درست ببینی.

@آرش:
بهتره بگی collation از روی character set تعیین میشه :-)
ضمن اینکه منظورت رو از اون دو سوم ماجرا نفهمیدم :d
#4.1.1 امید (سایت) در 1386-05-04 05:29 (پاسخ)
ostad joonam salam
man dar ein bare moshkel nadaram faght mikham bedoonam chera vaghti az to phpmyadmin collation ro roye 'utf8-persian-ci ' mizaram mitoonam too query browser farsi taype konam vali vaghti nemizaram nemishe
doroste ke behem gofti query browser mohite farsi nadare vali chetory shode ke mishe ba ein tarfand doresh zad
#5 saeid در 1386-05-02 17:08 (پاسخ)
سلام :-)

سورس اون برنامه احتمالا با سی نوشته شده و من نگاش نکردم.

ولی اصولا نباید utf8_persian_ci ربطی به این قضیه داشته باشه مگر اینکه خود query browser بیاد این مورد رو چک کنه و توابع مناسب مورد نیاز رو براش استفاده کنه.

موفق باشی :-)
پ.ن: چرا فارسی نمی نویسی؟! :-D
#5.1 امید (سایت) در 1386-05-03 02:37 (پاسخ)
به نام خدا
با سلام
من كه از مطالب سايت و وبلاگتان خيلي خوشم آمد و سايتتان را در وبلاگم لينك كردم. شما هم اگر دوست داشتيد و از مطالب وبلاگم خوشتان آمد من وبلاگ من را لينك كنيد.
بسيار متشكرم
#6 مهدی (سایت) در 1386-05-11 02:40 (پاسخ)
سلام

تو که همیشه مشکلگشایی! می تونی مشکل جدید Cpanel رو هم حل کنی؟! (می دونم که می تونی! ;-) )

قبلا با انکدینگ خاص می شد از ویرایشگر داخلی اون استفاده کرد و قارسی نوشت و خروجی درست رو دید!
ولی چند وقتی که دیگه نمیشه!

یعنی هر چه فارسی بنویسی نتیجه خروجیش درسته، ولی دیگه نمی تونی همون فارسی هایی رو که نوشتی رو در همون ویراشگر ببینی!


شاید اینجا جای مطرح کردن این مشکل نباشه! (قبلا از این بابت عذرخواهی می کنم.)

متشکرم. :-)
#7 حسام کلاهان در 1386-05-13 03:28 (پاسخ)
سلام،

خوب وقتی صفحهء edit باز، توی مرورگر ات انکودینگ اون صفحه رو تغییر بده و صفحه رو تغییر بده و ذخیره کن!

موفق باشی.
#7.1 امید (سایت) در 1386-05-13 03:31 (پاسخ)
خوب مطمئنا همین کار رو انجام می دادم! :-)

قبلا کار می کرد ولی حالا نه! فکر کنم از وقتی که نسخه 11 Cpanel نصب شده این ایراد براش پیش اومده!

میتونی خودت هم تست کنی...
#7.1.1 حسام کلاهان در 1386-05-13 16:01 (پاسخ)
کارت واقعا عالی بود.
یک سوال داشتم . پروژه ی gd فارسی که با Miladmovie کار می کردین به کجا رسید ؟
خیلی کار توپی بود !
فقط اگه می شد فارسی رو از راست بنویسه ( راست چین ) خیلی عالی می شد .
ممنون خداحافظ
#8 روح الله افشار صفوی (سایت) در 1386-06-21 15:58 (پاسخ)
خواهش می کنم.

راستش ایشون لطف کرده بودند اسم من رو توی پروژه شون گذاشته بودند.
به هر حال من پروژه مشابهی داشتم که توی همین مطالب وبلاگم در موردش حرف زدم.

موفق باشید
#8.1 امید (سایت) در 1386-06-21 16:13 (پاسخ)
در سرور شير چطور به فايل database_interface.lib.php دسترسی پيدا كنم؟
#9 s در 1386-06-31 13:39 (پاسخ)
مسلما نمی تونید :-)
مگر اینکه نسخه ای برای خودتون در سایتتون نصب کنید. (مشکلی نداره، میشه نصب کرد)
#9.1 امید (سایت) در 1386-06-31 14:27 (پاسخ)
آقا چرا اينجا دكمهء تشكر نداره؟!
در هر صورت خيلی ممنونم. دارم دربارش سرچ ميكنم. :-)
#10 s (سایت) در 1386-07-02 05:14 (پاسخ)
من هميشه بعد از كانكت شدن به ديتا بيس از دستور زير استفاده ميكنم :
mysql_query("SET NAMES 'utf8'");
و با همين كار هميشه اطلاعات من در phpmyadmin به درستي نمايش داده ميشه .
در واقع درج اطلاعات فارسي بدون تبديل كانكشن به utf8 كاري اشتباه هست و مطمئن باشيد كه دچار ضرر خواهيد شد .
در صورتي كه قبل از درج اطلاعات در ديتا بيس از اين دستور استفاده كنيد هيچوقت اطلاعات شما موقع انتقال يا بك آپ گيري خراب نميشه .
http://www.iranphp.net/index.php?option=com_content&task=view&id=139&Itemid=25
#11 HamidReza (سایت) در 1386-09-25 14:11 (پاسخ)
البته خدا شما رو حفظ کناد :-) فقط کاشکی مابقی نظرات رو هم یک مروری می کردی :-)
#11.1 امید (سایت) در 1386-09-25 17:24 (پاسخ)
ایول
خبلی خوب جواب داد.
خیلی وقت بود که برای خودم یه سوال شده بود که چرا این اتفاق می افته.
به هر حال از مطلبتون خیلی ممنونم.
#12 مهدی (سایت) در 1386-10-04 03:38 (پاسخ)

ارسال نظر

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
BBCode format allowed
:'( :-) :-| :-O :-( 8-) :-D :-P ;-) 
E-Mail addresses will not be displayed and will only be used for E-Mail notifications

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

 
نظرات ارسال شده قبل از نمایش داده شدن، باید مدیریت شوند.
 
 
این سایت توسط امید متقی راد با ایدهء اصلی از طرح ولادیمیر سیمو ویچ طراحی شده است و هرگونه کپی برداری از آن با ذکر منبع آزاد است.

خوراک‌ها

XML RSS 2.0 feed
XML RSS 2.0 نظر ها

ایمیل من

omi...@gmail.com

Google the Site

موضوعات

  • XML فایرفاکس (1)
  • XML لینوکس (10)
  • XML متفرقه (23)
  • XML چیستان (2)
  • XML پی‌اچ‌پی (16)
  • XML زنگ تفریح (2)
  • XML طراحی وب (4)

تمامی موضوعات

محبوب ترین مطالب

تقویم فارسی برای Google Personalized Homepage
(96)
روش های نگهداری فیلم - بخش دوم - تبدیل فایل های تصویری
(42)
روش های نگهداری فیلم - بخش سوم - تبدیل فایل های تصویری DVD
(41)
زمین و گربه
(40)
تکامل چیست؟
(38)
بزرگ ترین عدد
(33)
کاراکتر های فارسی در عکس توسط PHP
(32)
11 نکته مفید در مورد فایرفاکس
(28)
تغییر ظاهر وبلاگ
(26)
چگونگی فارسی سازی phpMyAdmin
(25)

آمار

آخرین نوشته: 1387-12-01 17:19
تعداد مطالب: 60
تعداد نظر ها: 770

لینک

لینک های روزانه

مقایسه‌ی کرنل ویندوز و لینوکس
عضویت در تیم اهدای عضو
Who uses Linux?
ده تغییر مهم مهاجران به لینوکس!
بهینه سازی فایرفاکس
امنیت شبکه (باگ تراک)
طریقه توسعه افزونه، برای فایرفاکس
اینترنت اکسپلورر 7 را بمباران کنید
رفع مشکل حافظه فایرفاکس
نمایش محتویات cache شده در فایرفاکس

قبل | بعد

PageRank Counter

کپی برداری از مطالب سایت طبق لایسنس CC مجاز می باشد

Creative Commons License - Some Rights Reserved
Original content in this work is licensed under a Creative Commons License

نظر ها

travianwarrior about تکامل چیست؟
ج، 12.04.1388 05:57
اقای امین سلام. مید ونم بعیده دوباره این جا بیای ولی در هر صو رت، یه سوال ازت دارم : خوب بر اسا [...]


shery about مقاله: طريقه نصب PHP
س، 09.04.1388 10:29
سلام میشه نصب php در ویستا رو بگین ؟ ممنون میشم.


امید about MD5 چیست؟
پ، 31.02.1388 08:21
خواهش م‌کنم. توی سی ‌دی یا بهتر بگم، است اندارد iso9660 از CR C32 استفاده می‌شه، ک ه روشی است برا [...]


فريد about MD5 چیست؟
پ، 31.02.1388 06:51
روش درهم سازي درcd-r om چگونه است؟ لطفا ز ودتر جواب را برايم ا رسال كنيد باتشكرازا طلاعات مفيدي ك [...]


امید about Persian Log2Vis نگارش دوم منتشر شد
د، 28.02.1388 00:02
سلام، چاکریم :-) آره ... اما من که دیگه ا ز جمع دوستان اومدم ب یرون. دیگه این‌که کج ا می‌تونیم هم [...]


ربيعي about Persian Log2Vis نگارش دوم منتشر شد
ش، 26.02.1388 23:56
سلام، چطوري حاجي، د لم برات يه ظرح شده، اميدوارم قبل از رحلت م يكبار ديگه ببينمت. روزگار به [...]


hn about تقویم فارسی برای Google Personalized Homepage
پ، 17.02.1388 00:31
تقريبا" خوب است


محمد about برطرف کردن مشکلات فایل‌های دانلود شده‌ی خراب!
چ، 16.02.1388 17:43
راه حل جالبی بود ممن ون ولی یه راه دیگه که مقرون بصرفه تره ( درصورتی که فایل زیپ شدس) استفاده ا [...]


tabib_m about برطرف کردن مشکلات فایل‌های دانلود شده‌ی خراب!
ش، 12.02.1388 08:26
سلام ممنون :-)


tabib_m about Persian Log2Vis نگارش دوم منتشر شد
ش، 12.02.1388 08:22
سلام ممنون :-)


مدیریت وبلاگ

باز کردن صفحه ورود