نمایش نتایج 1 تا 6 از 6

نام تاپیک: مشکل در ارسال اطلاعات فارسی به دیتابیس mysql

  1. #1

    مشکل در ارسال اطلاعات فارسی به دیتابیس mysql

    با سلام ;

    بنده در حال توسعه ی یک اسکریپت هستم ، تا به الان هم موردی نبوده الا یک مشکل که وقتم رو گرفته ،

    مشکل در ازسال اطلاعات فارسی به دیتابیس هست ، بدین صورت که وقتی کسی ثبت نام میکند در صورتی که نام را فارسی بزند اطلاعات تغییر کد میدهند و در دیتابیس قرار میگیرند ، مثلا نام : احسان -> Ù تبدیل میشه ، اما اگه در خود دیتابیس نام را دوباره به احسان تغییر بدم در سایت درست نمایش داده میشه ، مطمئنم هستم که مشکل از انکودینگ نیست ، فایل فانکشن اصلی انکودش ANSI (with out BOM) هست و همچنین بقیه ی فایل ها .... ، ضمنا دیتابیس هم ـutf-8 ـه و فیلد ها نیز همینطور ....
    از دستورات مختلف مانند : SET NAMES 'utf-8' (اگه اشتباه نکنم!) و امثالهم هم استفاده کردم ، ولی لا فائده !

    من خودم احساس میکنم مشکل از فانکشن زیر باشه که همه ی رشته ها رو عوض میکنه ، اما با فارسی کار نمی کنه :


    // more advanced cleaning mysql function.
    function mysqlScapeStr($str)
    {
    if(!get_magic_quotes_gpc())
    {
    $str = strip_tags($str);
    $str = htmlentities($str);
    return mysql_real_escape_string($str);
    }
    $str = stripslashes($str);
    $str = strip_tags($str);
    $str = htmlentities($str);
    return mysql_real_escape_string($str);
    }

    مثلا متغیر $username

    $username = mysqlScapeStr($username);


    این هم فانکشن ارسال:

    // insert values in the database $data must be an array
    function inserData($data)
    {


    global $dataBaseTable;
    $true = false;
    if(is_array($data))
    {


    $values = array_map('mysqlScapeStr', array_values($data));
    $keys = array_map('mysqlScapeStr',array_keys($data));



    # Set character_set_client and character_set_connection


    $query = mysql_query('INSERT INTO `'.$dataBaseTable.'` (`'.implode('`,`', $keys).'`) VALUES (\''.implode('\',\'', $values).'\')');
    if($query !== false && mysql_affected_rows())$true = true;
    }
    return $true;
    }




    فایل فانکشنز رو هم + فایل رجیستر رو ضمیمه می کنم که احتمالا مشکل از همون فانکشنز هست .

    پیشاپیش هم از دوستانی که کمک می کنند تشکر میکنم
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    کاربر دائمی آواتار khanlo.javid
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    قـزویــن
    پست
    943

    نقل قول: مشکل در ارسال اطلاعات فارسی به دیتابیس mysql

    دوست عزیز تنها موقع فرستادن اطلاعات با انکد utf8 کفاف نمیده باید سمت سرور پایگاه دادت رو هم که میسازی برای قسمت هایی که میدونی قراره اطلاعات فارسی داخلش ذخیره بشه باید روی utf8-persian ci تنظیم کنی وگرنه اطلاعاتت به همون صورتی که فرمودید ذخیره میشه.




    موفق باشید.

  3. #3

    Unhappy نقل قول: مشکل در ارسال اطلاعات فارسی به دیتابیس mysql

    نقل قول نوشته شده توسط khanlo.javid مشاهده تاپیک
    دوست عزیز تنها موقع فرستادن اطلاعات با انکد utf8 کفاف نمیده باید سمت سرور پایگاه دادت رو هم که میسازی برای قسمت هایی که میدونی قراره اطلاعات فارسی داخلش ذخیره بشه باید روی utf8-persian ci تنظیم کنی وگرنه اطلاعاتت به همون صورتی که فرمودید ذخیره میشه.




    موفق باشید.
    ممنون از توجهتون ،


    این تصویر رو بنگرید :

    http://www.jokfa.ir/image/uploads/13...okfa.ir---.jpg

    و


    http://www.jokfa.ir/image/uploads/13...okfa.ir---.jpg

    خود دیتابیس هم utf-8 هست


    از چی میتونه باشه بنظرتون ؟ از دوستانی که با این مشکل برخورد کردند تقاضا دارم راهنمایی کنند
    آخرین ویرایش به وسیله versaPHP : شنبه 09 اردیبهشت 1391 در 16:14 عصر دلیل: ++ تصویر

  4. #4
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: مشکل در ارسال اطلاعات فارسی به دیتابیس mysql

    htmlentities رو اینجوری استفاده کن

    $value = htmlentities( $value, ENT_QUOTES, 'utf-8' );

  5. #5

    نقل قول: مشکل در ارسال اطلاعات فارسی به دیتابیس mysql

    از این تابع استفاده کنید:

    // more advanced cleaning mysql function.
    function mysqlScapeStr($str) {
    if(get_magic_quotes_gpc()) {
    $str = stripslashes($str);
    }
    $str = strip_tags($str);
    $str = htmlentities($str, ENT_QUOTES, 'utf-8');
    mysql_set_charset('utf-8');
    return mysql_real_escape_string($str);
    }

    موفق باشید.

  6. #6

    Red face نقل قول: مشکل در ارسال اطلاعات فارسی به دیتابیس mysql

    نقل قول نوشته شده توسط plague مشاهده تاپیک
    htmlentities رو اینجوری استفاده کن

    $value = htmlentities( $value, ENT_QUOTES, 'utf-8' );

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    از این تابع استفاده کنید:

    // more advanced cleaning mysql function.
    function mysqlScapeStr($str) {
    if(get_magic_quotes_gpc()) {
    $str = stripslashes($str);
    }
    $str = strip_tags($str);
    $str = htmlentities($str, ENT_QUOTES, 'utf-8');
    mysql_set_charset('utf-8');
    return mysql_real_escape_string($str);
    }

    موفق باشید.



    اوکی شد ...
    شکرا جزیلا

تاپیک های مشابه

  1. مشکل در وارد کردن اطلاعات فارسی به دیتابیس
    نوشته شده توسط p30rex در بخش SQL Server
    پاسخ: 2
    آخرین پست: سه شنبه 09 شهریور 1389, 14:33 عصر
  2. سوال: مشکل با وارد کردن اطلاعات فارسی در دیتابیس
    نوشته شده توسط meysampaknahad در بخش SQL Server
    پاسخ: 7
    آخرین پست: یک شنبه 13 تیر 1389, 12:15 عصر
  3. ارسال اطلاعات فارسی از صفحات JSPبه پایگاه داده Mysql
    نوشته شده توسط imanEsmaeili در بخش Java EE : نگارش سازمانی جاوا
    پاسخ: 1
    آخرین پست: چهارشنبه 26 خرداد 1389, 12:29 عصر
  4. مشکل در ارسال اطلاعات به mysql
    نوشته شده توسط mojtabadj در بخش VB.NET
    پاسخ: 4
    آخرین پست: دوشنبه 05 بهمن 1388, 12:37 عصر
  5. مشکل با فرم های asp (مشکل ارسال اطلاعات فارسی با متد Get)
    نوشته شده توسط sma_mohseni در بخش Classic ASP
    پاسخ: 1
    آخرین پست: سه شنبه 17 خرداد 1384, 13:00 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •