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

hharddy

کاربر عضو
--------------- حل شد ---------

سلام من یه دیتابیس دارم که 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

مدیر انجمن
پرسنل مدیریت
mysqli_set_charset($connect, "utf8");


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

 
بالا