0
这就是我想要实现: 我不能用真实URL的,所以我会用网站A.com和B.comPHP卷曲登录的Cookie
- 从第一页A.com我展示一个登录表单,然后我使用CURL将值提交给域B,登录并获取cookie名称
- 然后,我使用正确的信息和cookie名称设置标题
- 将页面重定向到B.com/welcome.php使用PHP定位功能
我的问题是,我总是得到错误:您的会话已过期。请再次登录。 如果我使用CURL登录并获取cookie,然后使用CURL来显示它的工作页面。
卷曲部分工作正常,下面的代码会导致会话过期错误”
header ('Host: B.com\n');
header ('User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1\n');
header ('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\n');
header ('Accept-Language: en-gb,en;q=0.5\n');
header ('Accept-Encoding: gzip, deflate\n');
header ('Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\n');
header ('Referer: http://B.com/\n');
header ('Content-type: application/x-www-form-urlencoded\n');
header ('location: B.com/welcome.php');
我使用这些头的原因是因为这正是从火狐发送,当我手动登录到页面。
感谢您的帮助
您不能从A.com为* site B.com设置cookie *。 Cookie只能针对该域中的任何给定域设置。这没有解决办法。几乎所有浏览器默认都会阻止[第三方Cookie](http://en.wikipedia.org/wiki/HTTP_cookie#Third-party_cookie),这需要客户端明确允许。 – DaveRandom
我不禁怀疑这将用于恶意目的。 – 2011-11-01 11:04:29
我不想设置第三方cookie,我通过curl创建cookie,获取cookie值,然后通过位置传递值,因此从理论上讲,PHP服务器应该读取cookie值并说我有一个会话该ID请继续... – Alfonso