phpurl获取用于搜索的中文字符


php url get chinese characters for search purpose

我将使用一个表单,通过url-get将关键字发送到页面本身,以应用于sql语句中进行关键字搜索:-

if (isset($_GET['k']))
{
$keyword = $_GET['k'];
$keyword = urldecode($keyword);
}
<form action = "home.php" method="get">
<input type = "text" name="k" value = "" size = "40"/>
<input type = "submit" value = "search">
</form>
$sql = "select * from [phone] where ([name] like '%$keyword%') order by id DESC";

对于英语内容,我可以完美地从URL中获取关键词;但是对于中文字符,尽管我已经将urldecode应用于$_GET值,但我仍然无法恢复中文单词。有没有更好的方法来解决这个问题?谢谢

通常,在恢复GET值时,不必使用urldecode。

除此之外,还有一个令人讨厌的SQL注入问题:

$sql = "select * from [phone] where ([name] like '%$keyword%') order by id DESC";

更改为(如果是mysql):

$sql = sprintf("select * from [phone] where ([name] like '%%%s%%') order by id DESC", mysql_real_escape_string($keyword));

最好使用准备好的语句,或类似Zend_DB_Select的语句。