在没有输出之前用:header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');就可以跨域取得cookie值。
参考如下:
/-----保存COOKIE-----/
$url = 'IP'; //url地址
$post = "id=user&pwd=123456"; //POST数据
$ch = curl_init($url); //初始化
curl_setopt($ch,CURLOPT_HEADER,1); //将头文件的信息作为数据流输出
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //返回获取的输出文本流
curl_setopt($ch,CURLOPT_POSTFIELDS,$post); //发送POST数据
$content = curl_exec($ch); //执行curl并赋值给$content
preg_match('/Set-Cookie:();/iU',$content,$str); //正则匹配
$cookie = $str[1]; //获得COOKIE(SESSIONID)
curl_close($ch); //关闭curl
/-----使用COOKIE-----/
curl_setopt($ch,CURLOPT_COOKIE,$cookie);
setcookie("userinfo['name']","111",480);
为什么不修改为:
setcookie("userinfo_name","111",480);
这样一切都变得非常简单。
setcookie("userinfo['name']","111",480);
setcookie("userinfo['purview']","222",480);
setcookie("userinfo['OSKEY']","333",480);
如上程序,php怎么读取数组的信息?例如,我要读取userinfo['name']中的信息,你试试看:
echo $_COOKIE["userinfo['name']"];
$_COOKIE,是文件头信息,而文件头是不可显示内容。也就是说,不能在正文中 *** 作$_COOKIE。更通俗地说,在浏览器中查看源码,只要源码不为空,再使用$_COOKIE系统将报错。
解决方法:将$_COOKIE赋值给变量,再对变量进行 *** 作。比如
………………
$user_cookie=$_COOKIE['usercookie']
………………
echo $user_cookie
别误人子弟了
一般cookie都是加密后才发送的(在firebug
和firephp
可以清楚看到cookie)
除非那个垃圾程序员写的垃圾论坛才不加密
curl_getinfo()
只是
Get
information
regarding
a
specific
transfer
如果论坛的cookie
这样写(包括域名,
你的理论就不可行了)
setcookie("TestCookie",
$value,
time()+3600,
"/~rasmus/",
"examplecom",
1);
以上就是关于PHP跨域获取COOKIE全部的内容,包括:PHP跨域获取COOKIE、php怎么获得头文件中的Set-Cookie、php怎样读取cookie数组的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)