【问题标题】:PHP Post variable loses encoding when posting to databasePHP Post 变量在发布到数据库时丢失编码
【发布时间】:2015-10-03 21:54:01
【问题描述】:

我正在使用 android 发送数据,并且我有一个带有字母“ž”的变量。当 php 将其发布到数据库中时,它变成了“?”。它不是android问题总线android正在发送正常值,数据库是utf_8所以问题是在解析到php时。

代码:

<?php
header('Content-type: application/json; charset=utf-8');
require_once('DB_connect.php');
$db = new DB_connect();
$var=0;

$str = preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/', function ($match) {
    return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UTF-16BE');
}, $str);


$con= new mysqli ("localhost","infoizla_boris","internet1","infoizla_boris");


$place=$_POST['place'];
$name=$_POST['name'];
$number=$_POST['number'];

echo $name;


    $statement=mysqli_prepare($con,"insert into Ocjena (user,place,ocjena) values (?,?,?)");
mysqli_stmt_bind_param($statement,"sss",$name,$place,$number);
mysqli_stmt_execute($statement);
mysqli_stmt_close($statement); 

   if(!mysqli_stmt_execute($statement)){


    $sql="update Ocjena set ocjena='$number' where user='$name' && place='$place'";

   $rez=$con->query($sql);

   }


mysqli_close($con);


?>

【问题讨论】:

  • 您对 SQL 注入持开放态度。 require_once('DB_connect.php'); 是做什么的,我认为连接会在那里建立..

标签: php post encode


【解决方案1】:

你也必须告诉use utf-8的连接

$con= new mysqli ("localhost","infoizla_boris","internet1","infoizla_boris");
$con->set_charset("UTF-8");

【讨论】:

    猜你喜欢
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 2016-06-30
    相关资源
    最近更新 更多