-1

このように、phpファイルに検索ボックスがあります

<form action="/">
<input type="text" name="q">
<input class="submit" type="submit"  value="Search" />
</form>

ただし、ユーザーが検索ボックスに特殊文字を入力すると、検索が台無しになります。

では、検索に渡される前に特殊文字をスペースに置き換えるにはどうすればよいですか?

御時間ありがとうございます。

4

3 に答える 3

4

他の人が指摘しているように、セキュリティ上の理由から、サーバー側で検証とフィルタリングを実行するのがおそらく最善でしょう (たとえば、ユーザーは単に URL のクエリ部分に特殊文字を書き込むことができます)。

これは、英数字以外のすべての文字をスペースに置き換えます。

$q = $_GET['q'];
$q = preg_replace('/[^a-zA-Z0-9]+/', ' ', $q);
于 2012-09-12T09:01:25.510 に答える
0
<form action="/">
<input type="text" name="q" onkeyup="this.value = this.value.replace(new RegExp('(a|b|d)', 'g'), ' ');">
<input class="submit" type="submit"  value="Search" />
</form>

置き換えたい文字の a|b|d を変更するだけです。

または、GETフォーム送信からPOSTに変更できます

<form action="/" method="post">
<input type="text" name="q">
<input class="submit" type="submit"  value="Search" />
</form>
于 2012-09-12T08:36:36.150 に答える
-1

正規表現(regex)を使用する必要があると思います

于 2012-09-12T08:36:10.260 に答える