我有一个method="GET"
表单,会在提交时生成foo.php?id = userinput 。
我目前使用preg_replace("/\W|_/", "", $_GET['id']);
删除GET字符串中的所有非字母数字字符,后者工作正常后端(添加到数据库等(我不插入数据库只是示例))但是url链接没有清理和结果无论用户输入什么加上浏览器编码。
因此,对于时刻,如果用户输入f& oo )(£b$%a&r£1
支持清除创建foobar1
,但网址结果为foo.php?id=f%26+oo+)(£b%24%25a%26r£1
是否可以清除网址结果?如果可以,如何清除?
更新
提交代码:
if(!$_GET['id']) {
header('location: index.php');
exit;
} else {
$get_id = preg_replace("/\W|_/", "", $_GET['id']);
}
答案 0 :(得分:1)
您可以在preg_replace
方法之后使用此PHP代码进行网址重定向:
if(!$_GET['id']) {
header('location: index.php');
exit;
} else if ( preg_match('/[\W_]/', $_GET['id']) ) {
$get_id = preg_replace('/[\W_]/', "", $_GET['id']);
header('Location: ' $_SERVER["SCRIPT_URI"] . $get_id);
exit;
}