繁体   English   中英

表单提交中的汉字

[英]Chinese characters in form submission

客户页面:

<head>
<meta http-equiv="Catchup Scheduler" content="text/html; charset=UTF-8">
</head>

<body>
<form action="next.php" method="POST" >
<input type="text" name="programme_name"></br>
<input type="submit">
</form>
</body>

服务器页面:

$name = $_POST['programme_name'];

mysql_query("SET character_set_client=utf8",$con);
mysql_query("SET character_set_connection=utf8", $con);
mysql_query("SET character_set_results=utf8", $con);

$query = "Select * from programme where Programme_name Like '%".$name."'";

问题是尽管数据库中有中文文本,但查询始终返回ZERO(none) 如果我打印POST值$name它将显示带有汉字的正确文本。

但是如果我将其存储在变量中,例如:

$name= "valuevalue ( 官话 )";
$query = "Select * from programme where Programme_name Like '%".$name."'";

它产生结果。 怎么可能,在POST中没有,但是在静态值声明中呢? 我的操作系统是XP SP3。

如果在POST中,汉字的“内部”表示形式是否存在问题? 我需要在操作系统中设置一些内容来支持中文表示吗?

您正在馈送未转义的mySQL原始输入。

在输入字符串上使用mysql_real_escape_string或更好的方法是使用PDO与数据库对话。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM