0

フォームを使用して、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 からキーワードを完全に取得できます。しかし、中国語の文字については、$_GET 値に urldecode を適用しましたが、まだ中国語の単語を復元できません。問題のより良い方法はありますか?ありがとう!

4

1 に答える 1

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 などを使用することをお勧めします。

于 2012-07-11T07:24:05.257 に答える