-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 回答