通过$_GET输入特殊字符


Input Special Characters through $_GET.

$Tags=$_REQUEST['Tags'];
$CategoryId=$_REQUEST['CategoryId'];
var_dump($Tags);

,我的输入是:

baseurl/项目/控制器/方法? CategoryId = 3,标签=其他testcase,酒吧,餐厅,餐厅

当我给出这样的输入时,我得到错误'不允许的键值'....我知道错误是由于Bar &中的特殊字符'&餐厅……我如何通过Bar考试?饭店没有得到错误

部分字符不能直接使用。使用urlencode() http://php.net/urlencode此函数在对URL的查询部分使用的字符串进行编码时非常方便。

你应该对它进行编码,所以&应该是&

这可以通过htmlspecialchars()函数完成,参见这里的文档

您不允许通过url传递带有,等字符的参数。你可以对你想传递的字符串(Other,testcase,Bar)进行编码。

Try like:

$vars = urlencode(join(',', array(Other,testcase,Bar)));

传递像

这样的url
aseurl/project/controller/method?CategoryId=3&Tags=<?php echo $vars ?>

在结果页中处理

$vars = explode(',', urldecode($_GET['Tags']));