2012-07-11 42 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對象。