ذخیره نشدن اطلاعات فارسی ارسالی در دیتابیس

hharddy

کاربر عضو
17/5/14
111
0
16
--------------- حل شد ---------

سلام من یه دیتابیس دارم که collation و روی utf8 گذاشتم وقتی مستقیم اطلاعات وارد دیتابیس میکنم مشکلی نیست ولی وقتی از طریق وب سرویس اطلاعات به یک صفحه php میفرستم که اطلاعات ذخیره بشه به این شکل در میاد.

سسبلل


و یا این شکل:

سی


کد هایphp به اینصورت هست.

کد:
<?php


   
header('Content-Type: text/html; charset=utf-8'); 


  
	 
	 
	 
	  $error['state'] = "";

    if( isset( $_POST['Year'] ) && ( !empty( $_POST['Year'] ) ) &&
        isset( $_POST['Month'] ) && ( !empty( $_POST['Month'] ) ) &&
        isset( $_POST['Day'] ) && ( !empty( $_POST['Day'] ) ) 
        &&
        isset( $_POST['Dayname'] ) && ( !empty( $_POST['Dayname'] ) )
		&&
        isset( $_POST['Text'] ) && ( !empty( $_POST['Text'] ) ) 
		&&
		isset( $_POST['Holiday'] ) && ( !empty( $_POST['Holiday'] ) ) 
		 )
    {
        $temp_year =  $_POST['Year'] ;
        $temp_month = $_POST['Month'] ;
        $temp_day =  $_POST['Day'] ;
        $temp_dayname =  $_POST['Dayname'] ;
        $temp_text =  $_POST['Text'] ;
        $temp_holiday =  $_POST['Holiday'] ;
        $connect = @mysqli_connect($hostname , $username , $password , $database );
        
  


        if( $connect )
        {
            $year = @mysqli_real_escape_string( $connect , $temp_year );
          $month = @mysqli_real_escape_string( $connect , $temp_month );
            $day = @mysqli_real_escape_string( $connect , $temp_day );
            $dayname = @mysqli_real_escape_string( $connect , $temp_dayname ); 
            $text = @mysqli_real_escape_string( $connect , $temp_text );
            $holiday = @mysqli_real_escape_string( $connect , $temp_holiday );
            
            
            $query = "INSERT INTO ".$tbl_name."(year, month, day,dayname,text,holiday) ".
                                "VALUES('".$year."','".$month."','".$day."','".$dayname."','".$text."','".$holiday."')";
          mysql_query('SET NAMES \'utf8\''); 
            @mysqli_query( $connect , $query );

            if( @mysqli_affected_rows( $connect ) > 0 )
            {
                $error['state'] = "done";
            }
            else
            {
                $error['state'] = "failed";
            }
        }
        else
        {
            $error['state'] = "inaccessible";
        }
    }

    die( json_encode($error) );



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

Mohammad

مدیر انجمن
عضو کادر مدیریت
6/4/08
15,064
104
48
30
PersianScript
mysqli_set_charset($connect, "utf8");


اینو بعد از $connect وارد کن (خط بعدی ش). تست نشده!