2012-07-11 39 views
0

我将用一个表格发送关键词到页面本身,通过URL获得,在关键字搜索目的的SQL语句被应用: -PHP的网址,以获取中国字符的搜索目的

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值,但仍无法恢复中文单词。有没有更好的解决方法?谢谢!

+0

我们的中文字符问题可能是字符集问题的原因?你用什么字符集? – Ron 2012-07-11 07:26:27

回答

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对象。