簡體   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