مشکل در وارد کردن اطلاحات فارسی در MySql

chatman

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

من یک مشکل اساسی تو وارد کردن اطلاحات تو مای اس کی وال دارم

من یک صفحه ثبت نام دارم که کاربران بتوانند توش ثبت نام کنند.

مثلا من وارد این صفحه میشم و یک یوزر فارسی مث محسن توش ثبت میکنم و بعد از ثبت نام وارد سایت میشم با این یوزر و درون سایت هم

اسم همین یوزر محسن به صورت صحیح به نمایش در میاد..

اما وقتی وارد MySql میشیم و در قسمت یوزر این یوزر محسن بصورت Ù…Ø*سن درون ان ثبت شده است که من میخوام درون اون به همین صروت محسن ثبت بشه نه مث این مریخی.

در ضمن تمام جداول من بصروت utf8 و utf8_persian_ci است که مای اس کی وال مشکلی نداره پس مشکل بر میگرده به همون صفحه ثبت نام ..

صفحه ثبت نام نیز خود بصورت utf-8 است که تو این قضیه شکی نیست پس بازم احتمال برمیگرده به کدی که اطلاحاتو تو مای اس کی وال ذخیره میکنه.

من این کدو زیر مینویسم شما ببینین و بگین باید چه کدی رو بهش اضافه کنم که یوزر فارسی رو به همون صورتی ک ثبت میشه تو MySql ثبت کنه.


کد:
$db->DoQuery("INSERT INTO {$prefix}users (id,username,password,email,name,gender,location,hobbies,bio,status,user_group,time,settings,hideemail,ip,activated) VALUES('0','$_POST[username]','$_POST[pass1]','$_POST[email]','$_POST[rname]','$_POST[gender]','$_POST[location]','$_POST[hobbies]','$_POST[bio]','$txt[150]','{$x7c->settings['usergroup_default']}','$time','$settings','$_POST[hideemail]','$ip','$act_code')");
این کد درون صفحه ثبت نام هست و اگه من اشتباه نکنم همون کدیه ک اطلاحاتو تو MySql ثبت میکنه لطفا کمک کنین من باید چ کدی بهش اضافه کنم تا یوزر فارسی رو درست تو مای اس کی وال ثبت کنه.ممنون

راستی یک صفحه دیگری نیز دارم که اینم فکر کنم به MySql مربوط میشه که اینم میزارم شاید بیشتر کمکتون کرد...


کد:
    class x7chat_db {
        var $con;        // MySql resource
        var $database;        // MySql database resource
        var $error;        // Stores error message (used for install file and debugging)

        // This function handles running a query
        function DoQuery($query){

            $q = mysql_query($query,$this->con);    // Run the query
            if(mysql_error() == ""){        // If MySql doesn't sends back an error then
                return $q;            // return resource ID
            }else{
                $this->error = 4;
                return mysql_error();    // otherwise return the error
            }
        }

        // Get a row from the database
        function Do_Fetch_Row($q){
            $row = mysql_fetch_row($q);    // Get the row
            return $row;            // Return it
        }

        // Make the database connection and select the correct database
        function x7chat_db($host="",$uname="",$pword="",$db="",$die=1){
            global $X7CHAT_CONFIG;        // Get the values from the config file
            if($host == ""){
                $host = $X7CHAT_CONFIG['DB_HOST'];
                $uname = $X7CHAT_CONFIG['DB_USERNAME'];
                $pword = $X7CHAT_CONFIG['DB_PASSWORD'];
                $db = $X7CHAT_CONFIG['DB_NAME'];
            }

            $this->error = 0;

            if($X7CHAT_CONFIG['USE_PCONNECT'] == 1){
                $this->con = @mysql_pconnect($host,$uname,$pword);
            }else{
                $this->con = @mysql_connect($host,$uname,$pword);
            }
            echo mysql_error();
            $this->database = @mysql_select_db($db,$this->con);        // Select the database    
            if(!$this->con){
                if($die){
                    if(@$_GET['frame'] == "update"){
                        echo "<script langauge=\"javascript\" type=\"text/javascript\">
                        alert('Error connecting to database');
                        </script>";
                    }
                        die("Error connecting to database");        // If it fails print an error and exit
                }else{
                    $this->error = 2;
                    return 0;
                }
            }
            if(!$this->database){
                if($die){
                    die("Error selecting database");        // If it fails print an error and exit
                }else{
                    $this->error = 3;
                    return;
                }
            }


        }

    }
حالا فک کنم منظور بنده کاملا روشن باشه لطفا هرکی میتونه کمک کنه دریغ نکنه...دوستان منتظرم هروز میام تا این مشکلم حل بشه

بازم مرسی :x:

 

chatman

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

من یک مشکل اساسی تو وارد کردن اطلاحات تو مای اس کی وال دارم

من یک صفحه ثبت نام دارم که کاربران بتوانند توش ثبت نام کنند.

مثلا من وارد این صفحه میشم و یک یوزر فارسی مث محسن توش ثبت میکنم و بعد از ثبت نام وارد سایت میشم با این یوزر و درون سایت هم

اسم همین یوزر محسن به صورت صحیح به نمایش در میاد..

اما وقتی وارد MySql میشیم و در قسمت یوزر این یوزر محسن بصورت Ù…Ø*سن درون ان ثبت شده است که من میخوام درون اون به همین صروت محسن ثبت بشه نه مث این مریخی.

در ضمن تمام جداول من بصروت utf8 و utf8_persian_ci است که مای اس کی وال مشکلی نداره پس مشکل بر میگرده به همون صفحه ثبت نام ..

صفحه ثبت نام نیز خود بصورت utf-8 است که تو این قضیه شکی نیست پس بازم احتمال برمیگرده به کدی که اطلاحاتو تو مای اس کی وال ذخیره میکنه.

من این کدو زیر مینویسم شما ببینین و بگین باید چه کدی رو بهش اضافه کنم که یوزر فارسی رو به همون صورتی ک ثبت میشه تو MySql ثبت کنه.


کد:
$db->DoQuery("INSERT INTO {$prefix}users (id,username,password,email,name,gender,location,hobbies,bio,status,user_group,time,settings,hideemail,ip,activated) VALUES('0','$_POST[username]','$_POST[pass1]','$_POST[email]','$_POST[rname]','$_POST[gender]','$_POST[location]','$_POST[hobbies]','$_POST[bio]','$txt[150]','{$x7c->settings['usergroup_default']}','$time','$settings','$_POST[hideemail]','$ip','$act_code')");
این کد درون صفحه ثبت نام هست و اگه من اشتباه نکنم همون کدیه ک اطلاحاتو تو MySql ثبت میکنه لطفا کمک کنین من باید چ کدی بهش اضافه کنم تا یوزر فارسی رو درست تو مای اس کی وال ثبت کنه.ممنون

راستی یک صفحه دیگری نیز دارم که اینم فکر کنم به MySql مربوط میشه که اینم میزارم شاید بیشتر کمکتون کرد...


کد:
    class x7chat_db {
        var $con;        // MySql resource
        var $database;        // MySql database resource
        var $error;        // Stores error message (used for install file and debugging)

        // This function handles running a query
        function DoQuery($query){

            $q = mysql_query($query,$this->con);    // Run the query
            if(mysql_error() == ""){        // If MySql doesn't sends back an error then
                return $q;            // return resource ID
            }else{
                $this->error = 4;
                return mysql_error();    // otherwise return the error
            }
        }

        // Get a row from the database
        function Do_Fetch_Row($q){
            $row = mysql_fetch_row($q);    // Get the row
            return $row;            // Return it
        }

        // Make the database connection and select the correct database
        function x7chat_db($host="",$uname="",$pword="",$db="",$die=1){
            global $X7CHAT_CONFIG;        // Get the values from the config file
            if($host == ""){
                $host = $X7CHAT_CONFIG['DB_HOST'];
                $uname = $X7CHAT_CONFIG['DB_USERNAME'];
                $pword = $X7CHAT_CONFIG['DB_PASSWORD'];
                $db = $X7CHAT_CONFIG['DB_NAME'];
            }

            $this->error = 0;

            if($X7CHAT_CONFIG['USE_PCONNECT'] == 1){
                $this->con = @mysql_pconnect($host,$uname,$pword);
            }else{
                $this->con = @mysql_connect($host,$uname,$pword);
            }
            echo mysql_error();
            $this->database = @mysql_select_db($db,$this->con);        // Select the database    
            if(!$this->con){
                if($die){
                    if(@$_GET['frame'] == "update"){
                        echo "<script langauge=\"javascript\" type=\"text/javascript\">
                        alert('Error connecting to database');
                        </script>";
                    }
                        die("Error connecting to database");        // If it fails print an error and exit
                }else{
                    $this->error = 2;
                    return 0;
                }
            }
            if(!$this->database){
                if($die){
                    die("Error selecting database");        // If it fails print an error and exit
                }else{
                    $this->error = 3;
                    return;
                }
            }


        }

    }
حالا فک کنم منظور بنده کاملا روشن باشه لطفا هرکی میتونه کمک کنه دریغ نکنه...دوستان منتظرم هروز میام تا این مشکلم حل بشه

بازم مرسی :x:

 

wallfa

کاربر عضو
زمان اتصال به دیتابیس با کوئری ها هم به صورت یو تی اف 8 بفرسته به همین خاطر بهتر از این کد ها استفاده کنید .

دو حالت داره

یا زمان ذخیره اطلاعات

یا زمان اتصال به پایگاه داده ها


کد:
mysql_query("SET NAMES utf8");
 

wallfa

کاربر عضو
زمان اتصال به دیتابیس با کوئری ها هم به صورت یو تی اف 8 بفرسته به همین خاطر بهتر از این کد ها استفاده کنید .

دو حالت داره

یا زمان ذخیره اطلاعات

یا زمان اتصال به پایگاه داده ها


کد:
mysql_query("SET NAMES utf8");
 

chatman

تازه وارد
گرامی بنده زیاد تو php وارد نیستم میشه همون کدو ک من بالا نوشتمو شما درستشو همینجا قرار بدی؟ ممنونت میشم عزیز

اصلا این کدی ک دادینو من کدوم قسمت بزارم؟ خوتون راهنمایی کنین عزیز ممنون منتظرم

 
آخرین ویرایش توسط مدیر:

chatman

تازه وارد
گرامی بنده زیاد تو php وارد نیستم میشه همون کدو ک من بالا نوشتمو شما درستشو همینجا قرار بدی؟ ممنونت میشم عزیز

اصلا این کدی ک دادینو من کدوم قسمت بزارم؟ خوتون راهنمایی کنین عزیز ممنون منتظرم

 
آخرین ویرایش توسط مدیر:

amhr

تازه وارد
سلام دوست عزیز

تو فایل کانفیگ شما حتما چنین کاری انجام داده اید


کد:
$Var_name = mysql_connect('host','user','password');
خوب حالا این کد رو هم در آخر فایل کانفیگ خود اضافه کنید


کد:
mysql_set_charset('utf8',$CONNECTION_VAR);
که در کد بالا connection_var نام متغیر اتصال به sql است.

راستی حتما باید تمام table های شما روی utf8_persian_ci باشن

 
بالا