php url获取中文字符用于搜索目的

时间:2012-07-11 07:18:36

标签: php

我将使用表单通过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值,但我仍无法恢复中文字。有没有更好的方法来解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:0)

通常,在修改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。