Php &;amp;在URL中弄乱$\u获取变量
我们使用Php &;amp;在URL中弄乱$\u获取变量,php,Php,我们使用获取URL&而不是来自客户端系统的&:somedomain.com?param1=test&;param2=test2 我希望获得$\u get['param1']和$\u get['param2']。相反,我得到了$\u get['amp;param1']和$\u get['amp;param2'] 我是在.htaccess还是在PHP中将其作为重写规则进行修复 更新: 暂时的解决办法是执行以下操作,但这似乎很笨拙: foreach ($_GET AS $key =>
获取URL&
而不是来自客户端系统的&
:somedomain.com?param1=test&;param2=test2
我希望获得$\u get['param1']
和$\u get['param2']
。相反,我得到了$\u get['amp;param1']
和$\u get['amp;param2']
我是在.htaccess还是在PHP中将其作为重写规则进行修复
更新:
暂时的解决办法是执行以下操作,但这似乎很笨拙:
foreach ($_GET AS $key => $value)
{
$param = str_replace('amp;', '', $key);
$_GET[$param] = $value;
unset($_GET[$key]);
}
似乎您已经在HTML中定义了“somedomain.com?param1=test¶m2=test2”。因此HTML正在将&
转换为&代码>参考
只要试着把&
而不是像这样:somedomain.com?param1=test&;param2=test2
将字符?
和&
转换为一些令牌,如:
?
到\uuuq\uuuu
使用str\u替换(“?”、“\uu Q\uuuuuuu”、$toUrl)
&
到\uuuuu和uuu
用str\u替换('&','\uu和uuuu',$toUrl)
并在url上传递此数据
从url获取此数据时,请将其解码回来
str\u replace(“\uu Q\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
str\u replace(“\u和”&“,$fromUrl)
尽管这很棘手,但它仍然有效。html\u entity\u decode
让他们停止发送垃圾邮件?我们会发送一封包含正确链接的电子邮件。我怀疑他们的电子邮件客户端弄乱了链接。在这种情况下,客户端不太可能对其系统进行更改,因此现在这成了我的问题:-($在我有机会执行html\u entity\u decode
之前填充。当然,我可以循环执行§\u GET并替换amp
,但我认为这是一个笨拙的解决方案。根据经验,如果你让他们“侥幸逃脱”现在做错了事情,不管他们把事情搞砸了,这永远都是你的问题。这甚至不是因为你的应用程序很奇怪,他们使用了一个众所周知的、有文档记录的标准协议,把事情搞砸了。我没有建议,我说的是让客户停止发送不可靠的数据:POk,删除你的引用:)