文件: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啊? 求教各位高手。

解决方案 »

  1.   

    cookie 要在页面跳转后 或者 页面刷新后 才有 效你直接用别一个页面 想抓出 cookie ??
      

  2.   

    谢谢楼上的回复。COOKIE除了在当前页面刷新和页面跳转访问的这两种方式,再没法生成COOKIE了么?file_get_contents  这样的方式不算是访问了页面么?
      

  3.   

    你访问页面的时候才生成cookie.
      

  4.   

    先从浏览器访问 writecookie.php,在运行readcookie.php
      

  5.   

    能不能访问一个文件,但是写两个域名的COOKIE啊。因为我现在需要访问ReadCookie.php这个文件生成两个相同内容,但是不同域名的COOKIE,所以我就想用file_get_contents这个方法更换域名来访问WriteCookie.php这个文件来生成。
      

  6.   

    直接用AJAX可以,但是我想在服务器端用PHP来做啊。AJAX来GET一个页面,和 file_get_contents  有什么区别啊?
      

  7.   

    file_get_contents("http://127.0.0.1/WriteCookie.php"); 
    这句是在服务器上执行的,当然不能生成客户端的cookie了
    所以不管你怎么访问readcookie,都是没用的
      

  8.   

    setcookie()有个参数可以指定域名的:setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1);
      

  9.   

    file_get_contents("http://127.0.0.1/WriteCookie.php"); 
    这句是在服务器上执行的,当然不能生成客户端的cookie了 
    所以不管你怎么访问readcookie,都是没用的=================================================
    为什么AJAX访问http://127.0.0.1/WriteCookie.php就可以生成COOKIE呢?
      

  10.   

    setcookie()有个参数可以指定域名的: setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1);
    ================================================================================
    感谢你的回复,但是指定域名的方式无法指定两个不同的根域名
      

  11.   


    ajax是用js在客户端调用的,所以可以
      

  12.   


    你可以setcookie两次啊
    setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example1.com", 1);
    setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example2.com", 1);好了,给分吧,哈哈
      

  13.   

    你可以setcookie两次啊 
    setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example1.com", 1); 
    setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example2.com", 1); 好了,给分吧,哈哈
    =============================================================================感谢你的回复,但是不知道你试没试过上述方法?
    不可能的。
      

  14.   

    Cookie 是生成在 Header 区的.
    用 file_get_contents 只能取到 Repsonse Body 里的内容,自然也就取不到 Cookie了.
      

  15.   

    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)
      

  16.   

    刚才又试了下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
      

  17.   

    可以直接抓response header
    ==========================================
    $responseHeaders = get_headers('http://127.0.0.1/WriteCookie.php',1);print_r($responseHeaders['Set-Cookie']);
      

  18.   

    只抓取返回的header没有用啊,虽然返回了Set-Cookie ,但是实际并没有真正生成COOKIE文件啊。
    刚试验了下curl,貌似也不行,生成不了COOKIE
      

  19.   

    你为什么要生成 COOKIE ?你从 Header 区得到 Cookie 
    下次 请求时,把这个 Cookie 添加到 Request Header 里就行了.
      

  20.   

    你为什么要生成 COOKIE ? 你从 Header 区得到 Cookie 
    下次 请求时,把这个 Cookie 添加到 Request Header 里就行了.
    ======================================================我在做通行证接口,访问一个接口文件,生成多个域名的COOKIE。
      

  21.   


    你都从 Header 区获取了  Cookie 
    你完全可以在数据库里起一张表,临时 保存一下这个会话 COOKIE.这不是很好的设计思路吗?干嘛非抓着 cookie 文件不放?
      

  22.   

    你都从 Header 区获取了  Cookie 
    你完全可以在数据库里起一张表,临时 保存一下这个会话 COOKIE. 这不是很好的设计思路吗?干嘛非抓着 cookie 文件不放?
    =========================================================
    现在是没有COOKIE,要生成COOKIE,所以再没生成之前Header区时没有COOKIE的。用数据库保存会话COOKIE?不是吧?我如果很多频道都要使用这个登录信息,莫非都要SELECT?
    我没有抓着COOKIE不放,但是我不知道通行证登陆状态给其他子频道使用的时候不用COOKIE还能用什么?
      

  23.   

    没有明白你现在遇到什么问题及需求.你想在一个域里设置其它域的COOKIE,以达到登陆通行证的效果?
      

  24.   

    没有明白你现在遇到什么问题及需求. 你想在一个域里设置其它域的COOKIE,以达到登陆通行证的效果?
    =====================================================
    登陆页面生成多个域名COOKIE
      

  25.   


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

  26.   

    他想的就是用SSO单点登陆,你们说得这么复杂。