このように、phpファイルに検索ボックスがあります
<form action="/">
<input type="text" name="q">
<input class="submit" type="submit" value="Search" />
</form>
ただし、ユーザーが検索ボックスに特殊文字を入力すると、検索が台無しになります。
では、検索に渡される前に特殊文字をスペースに置き換えるにはどうすればよいですか?
御時間ありがとうございます。
他の人が指摘しているように、セキュリティ上の理由から、サーバー側で検証とフィルタリングを実行するのがおそらく最善でしょう (たとえば、ユーザーは単に URL のクエリ部分に特殊文字を書き込むことができます)。
これは、英数字以外のすべての文字をスペースに置き換えます。
$q = $_GET['q'];
$q = preg_replace('/[^a-zA-Z0-9]+/', ' ', $q);
<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>
正規表現(regex)を使用する必要があると思います