我在php文件中有一个搜索框,就像这样
<form action="/">
<input type="text" name="q">
<input class="submit" type="submit" value="Search" />
</form>
但如果用户在搜索框中输入特殊字符,搜索就会搞砸。
那么如何将特殊字符替换为空格才能传递给搜索?。
谢谢你的时间。答案 0 :(得分:4)
正如其他人所指出的那样,出于安全原因,最好在服务器端执行验证和过滤(例如,用户只需将特殊字符写入URL的查询部分)< / p>
这样的事情可能会做,这将替换所有非空格字母数字的字符;
$q = $_GET['q'];
$q = preg_replace('/[^a-zA-Z0-9]+/', ' ', $q);
答案 1 :(得分: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>
答案 2 :(得分:-1)
我想你必须去正则表达式(正则表达式)