为什么无法生成COOKIE?

haobojunsun 2009-05-11 09:20:19
文件:WriteCookie.php用来生成COOKIE,代码如下:
<?php
setcookie("mycookie","is my",time()+3600*24);
?>


文件:ReadCookie.php用来抓取WriteCookie.php内容,希望生成COOKIE,代码如下:
<?php
file_get_contents("http://127.0.0.1/WriteCookie.php");
?>



我在访问ReadCookie.php文件后,为什么没有生成COOKIE啊? 求教各位高手。

...全文
640 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
c4610732 2011-01-06
  • 打赏
  • 举报
回复
他想的就是用SSO单点登陆,你们说得这么复杂。。。。
mrshelly 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 haobojunsun 的回复:]
没有明白你现在遇到什么问题及需求.

你想在一个域里设置其它域的COOKIE,以达到登陆通行证的效果?
=====================================================
登陆页面生成多个域名COOKIE
[/Quote]

如果同顶级域.只需要设置COOKIE domain 至顶域就行了.

如果顶域不同. 则需要在其它需添加一个设置COOKIE的接口. 登陆后,在一个跳转页分别调用该域的接口,设置COOKIE.

haobojunsun 2009-05-18
  • 打赏
  • 举报
回复
没有明白你现在遇到什么问题及需求.

你想在一个域里设置其它域的COOKIE,以达到登陆通行证的效果?
=====================================================
登陆页面生成多个域名COOKIE
mrshelly 2009-05-17
  • 打赏
  • 举报
回复
没有明白你现在遇到什么问题及需求.

你想在一个域里设置其它域的COOKIE,以达到登陆通行证的效果?
mrshelly 2009-05-15
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 haobojunsun 的回复:]
你为什么要生成 COOKIE ?

你从 Header 区得到 Cookie
下次 请求时,把这个 Cookie 添加到 Request Header 里就行了.
======================================================

我在做通行证接口,访问一个接口文件,生成多个域名的COOKIE。
[/Quote]

你都从 Header 区获取了 Cookie
你完全可以在数据库里起一张表,临时 保存一下这个会话 COOKIE.

这不是很好的设计思路吗?干嘛非抓着 cookie 文件不放?
haobojunsun 2009-05-15
  • 打赏
  • 举报
回复
没人回复了。。。
haobojunsun 2009-05-15
  • 打赏
  • 举报
回复
你都从 Header 区获取了 Cookie
你完全可以在数据库里起一张表,临时 保存一下这个会话 COOKIE.

这不是很好的设计思路吗?干嘛非抓着 cookie 文件不放?
=========================================================
现在是没有COOKIE,要生成COOKIE,所以再没生成之前Header区时没有COOKIE的。

用数据库保存会话COOKIE?不是吧?我如果很多频道都要使用这个登录信息,莫非都要SELECT?


我没有抓着COOKIE不放,但是我不知道通行证登陆状态给其他子频道使用的时候不用COOKIE还能用什么?

cgb1021 2009-05-15
  • 打赏
  • 举报
回复
刚好需要呢
haobojunsun 2009-05-14
  • 打赏
  • 举报
回复
只抓取返回的header没有用啊,虽然返回了Set-Cookie ,但是实际并没有真正生成COOKIE文件啊。


刚试验了下curl,貌似也不行,生成不了COOKIE
foolbirdflyfirst 2009-05-14
  • 打赏
  • 举报
回复
可以直接抓response header
==========================================
$responseHeaders = get_headers('http://127.0.0.1/WriteCookie.php',1);

print_r($responseHeaders['Set-Cookie']);
haobojunsun 2009-05-14
  • 打赏
  • 举报
回复
刚才又试了下fsockopen
虽然没有生成COOKIE文件,但是返回信息的头里带着Set-Cookie,如下:

HTTP/1.1 200 OK
Date: Thu, 14 May 2009 01:56:38 GMT
Server: Apache/2.2.9 (Win32) PHP/5.2.6
X-Powered-By: PHP/5.2.6
Set-Cookie: mycookie=is my; expires=Fri, 15-May-2009 01:56:38 GMT; path=/
Content-Length: 20
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html;charset=UTF-8
liuhangbing 2009-05-14
  • 打赏
  • 举报
回复
ajax
haobojunsun 2009-05-14
  • 打赏
  • 举报
回复
Cookie 是生成在 Header 区的.
用 file_get_contents 只能取到 Repsonse Body 里的内容,自然也就取不到 Cookie了.
=========================================================================
我用fsockopen,模拟了主机头,还是不行。

GET http://127.0.0.1/WriteCookie.php HTTP/1.1
Accept */*
Accept-Encoding gzip, deflate
Accept-Language zh-cn
Connection Keep-Alive
Cookie EDiaryEditor_RUser=1324481743
Host 127.0.0.1
UA-CPU x86
User-Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)
haobojunsun 2009-05-14
  • 打赏
  • 举报
回复
你为什么要生成 COOKIE ?

你从 Header 区得到 Cookie
下次 请求时,把这个 Cookie 添加到 Request Header 里就行了.
======================================================

我在做通行证接口,访问一个接口文件,生成多个域名的COOKIE。
mrshelly 2009-05-14
  • 打赏
  • 举报
回复
你为什么要生成 COOKIE ?

你从 Header 区得到 Cookie
下次 请求时,把这个 Cookie 添加到 Request Header 里就行了.
nkym0626 2009-05-13
  • 打赏
  • 举报
回复
还有不要把COOKIE关了噢
mrshelly 2009-05-13
  • 打赏
  • 举报
回复
Cookie 是生成在 Header 区的.
用 file_get_contents 只能取到 Repsonse Body 里的内容,自然也就取不到 Cookie了.

haobojunsun 2009-05-13
  • 打赏
  • 举报
回复
你可以setcookie两次啊
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example1.com", 1);
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example2.com", 1);

好了,给分吧,哈哈
=============================================================================

感谢你的回复,但是不知道你试没试过上述方法?
不可能的。
shishirui 2009-05-12
  • 打赏
  • 举报
回复
setcookie()有个参数可以指定域名的:

setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1);
shishirui 2009-05-12
  • 打赏
  • 举报
回复
file_get_contents("http://127.0.0.1/WriteCookie.php");
这句是在服务器上执行的,当然不能生成客户端的cookie了
所以不管你怎么访问readcookie,都是没用的
加载更多回复(15)

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧