浏览器URL问题,因为像“&”这样的特殊字符

时间:2017-06-17 04:11:33

标签: php mysql apache

我有一个使用PHP并连接MySQL数据库的网站。我还有一个admindashboard用于控制用户使用我编写的PHP脚本中的一些功能。

<a href="../loginUser2.php?userName=<?php echo $SQLRow["userid"];?>" target="_blank" class="a">Records</a>

此代码在使用用户名

完成时会生成这样的登录URL链接
mydomain.com/loginUser2.php?userName=abc&xyz

在mysql from table中输入用户名abc&amp; xyz或任何用户。当我点击任何用户的链接然后用户在PHP的帮助下自动登录时,一切都很好。但是当在任何用户名中使用符号或特殊字符LIKE目前我在“&amp;”中有问题符号。当我用自己和网页浏览器编辑网址时,我手动输入链接替换&amp; %26链接工作和用户登录成功。我只是想知道如何在MySQL数据库中注册用户如何包含任何特殊字符符号,如&amp;或者等等我如何修复Web浏览器工作自动处理这种类型的符号和字符。

我在phpMyAdmin编辑用户名栏中尝试了一个愚蠢的事情并更新了像这样的用户名abc%26xyz我想当我更新时它的作品就像&amp; =%26但是我失败了。

2 个答案:

答案 0 :(得分:-1)

您可以使用urlencode()发送特殊字符,urldecode()来获取编码值。

<a href="../loginUser2.php?userName=<?php echo urlencode($SQLRow["userid"]);?>" target="_blank" class="a">Records</a>

urldecode($_GET['userName']);

答案 1 :(得分:-1)

当您在浏览器中点击网址时,浏览器会进行网址编码。哪个转换&#39;&#39;至&#39;%26&#39;。所以在你的loginUser2.php中只需输入&#39; urldecode()&#39; ,您接受get参数值的位置。它将再次解码您的价值来自&#39; abc%26xyz&#39;到&#39; abc&amp; xyz&#39;

试试这个:

urldecode($_GET['userName']);