Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php AJAX POST和Plus(+;)以及(&;)Sign如何编码?_Php_Ajax_Post_Decode_Encode - Fatal编程技术网

Php AJAX POST和Plus(+;)以及(&;)Sign如何编码?

Php AJAX POST和Plus(+;)以及(&;)Sign如何编码?,php,ajax,post,decode,encode,Php,Ajax,Post,Decode,Encode,我通过AJAX将表单字段的内容发布到PHP脚本中,并使用以下代码 if(!http) http = CreateObject(); nocache = Math.random(); http.open('post', 'addvm.php'); http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); ht

我通过
AJAX将表单字段的内容发布到PHP脚本中,并使用以下代码

if(!http)
            http = CreateObject();  

        nocache = Math.random();

        http.open('post', 'addvm.php');
        http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
        http.setRequestHeader("Content-length", params.length);
        http.setRequestHeader("Connection", "close");
        http.onreadystatechange = SaveReply;

        http.send(params);
问题是,任何
+和&
标志都被剥离并更换。如何安全地对
+和&
符号进行“编码”,然后在PHP端对其进行适当的“解码”

js:
encodeURIComponent(/*url*/)

php:
urldecode(/*url*/)

尝试:

js:
encodeURIComponent(/*url*/)


php:
urldecode(/*url*/)

需要对参数进行编码
encodeURIComponent

注意:-在PHP中访问
$\u GET、$\u POST或$\u REQUEST时,您正在检索已解码的值

需要对参数进行编码
encodeURIComponent

注意:-在PHP中访问
$\u GET、$\u POST或$\u REQUEST时,您正在检索已解码的值

只需将代码的最后一行更改为:http.send(encodeURIComponent(params));//然后,如果您愿意,可以在服务器上用urldecode捕获它……在处理post请求的php脚本中尝试以下操作:foreach($\u post as$key=>$value)$\u post[$key]=urldecode($value);您将在$\u POSTcheck out here:中对其进行解码,并查看“自己尝试”!,还有:@metaforce:see bro我只想解码到我的密码$password=$\u POST[“password”];我在这里可以做什么@metaforce:notworkinghttp.send(encodeURIComponent(params));只需将代码的最后一行更改为:http.send(encodeURIComponent(params));//然后,如果您愿意,可以在服务器上用urldecode捕获它……在处理post请求的php脚本中尝试以下操作:foreach($\u post as$key=>$value)$\u post[$key]=urldecode($value);您将在$\u POSTcheck out here:中对其进行解码,并查看“自己尝试”!,还有:@metaforce:see bro我只想解码到我的密码$password=$\u POST[“password”];我在这里可以做什么@metaforce:notworkinghttp.send(encodeURIComponent(params));