Php 治疗及护理;使用$\u GET作为普通字符
我有一个通过PHP将内容发布到MySQL数据库的应用程序。PHP使用$\u GET从URL中提取内容,然后将其插入数据库 这很有效,但我发现了一个问题。如果用户输入某些字符(“、&”和其他字符),则$\u GET方法无法正确地将内容与URL分开 假设用户发布此内容: 我喜欢蓝色和绿色 在这种情况下,&符号将剪切单词blue后面的字符串Php 治疗及护理;使用$\u GET作为普通字符,php,Php,我有一个通过PHP将内容发布到MySQL数据库的应用程序。PHP使用$\u GET从URL中提取内容,然后将其插入数据库 这很有效,但我发现了一个问题。如果用户输入某些字符(“、&”和其他字符),则$\u GET方法无法正确地将内容与URL分开 假设用户发布此内容: 我喜欢蓝色和绿色 在这种情况下,&符号将剪切单词blue后面的字符串 有没有什么方法可以让我编辑我的PHP文件来忽略&symbol,并将其作为它应该得到的变量的一部分?有什么帮助就好了!您可以使用$\u服务器['QUERY\u ST
有没有什么方法可以让我编辑我的PHP文件来忽略&symbol,并将其作为它应该得到的变量的一部分?有什么帮助就好了!您可以使用
$\u服务器['QUERY\u STRING']
从可以将请求作为base64编码字符串发送:
$string = base64_encode("This is my long string with &ersands and 'quotes'");
print base64_decode($string);
请注意,base64编码的数据比原始数据占用大约33%的空间
从手册中:
您还可以在将数据发送到PHP之前对其进行URL编码。这是一个更好的解决方案。
如果特殊字符在数据中,则不能在查询字符串中使用这些字符
在Javascript中,您可以使用
escape
函数:escape(&ee)
将给出%26ee
正确的方法是由客户端对“&”字符进行URL编码:传递“%26”而不是“&”尝试对字符串进行URL编码:
&
变成
%26
这是一个PHP函数:
在创建查询字符串之前,如何对其进行编码
$str = "I love blue & green ?=&˙Đ[]";
$str = urlencode($str);
echo $str;
将返回:
I%20love%20blue%20%26%20green%20%3F%3D%26%CB%99%C4%90%5B%5D
在将该字符串作为GET参数传递之前,必须对其进行修改。在这种特殊情况下,必须将&符号替换为%26
例如,可以在发送表单之前使用javascript来完成此操作。在完成后修复损坏是一个丑陋且不可靠的解决方法。难道你不能生成一个有效的URL吗?这很好,但帖子位于应用商店的移动应用程序中……因此,在下一次iOS更新之前,我需要找到一个快速修复方法……我可以执行紧急操作y更新,但我更希望现在就进行修补。在紧急情况下,您可以使用PHP中的regexp来执行此操作。谢谢@AlexKevler,我会尝试一下,如果遇到任何问题,我会更新我的问题!目前我只需要一个紧急修补程序,但我需要它:user2492064(&[a-zA-Z0-9]+)=([a-zA-Z0-9]+&))+:这只是一个开始,但不能保证:)谢谢,看起来这可能是唯一一个不需要更新iOS应用程序的解决方案-我会尝试处理它,并让您知道它是如何运行的。。