文件: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啊? 求教各位高手。
<?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啊? 求教各位高手。
这句是在服务器上执行的,当然不能生成客户端的cookie了
所以不管你怎么访问readcookie,都是没用的
这句是在服务器上执行的,当然不能生成客户端的cookie了
所以不管你怎么访问readcookie,都是没用的=================================================
为什么AJAX访问http://127.0.0.1/WriteCookie.php就可以生成COOKIE呢?
================================================================================
感谢你的回复,但是指定域名的方式无法指定两个不同的根域名
ajax是用js在客户端调用的,所以可以
你可以setcookie两次啊
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example1.com", 1);
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example2.com", 1);好了,给分吧,哈哈
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example1.com", 1);
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example2.com", 1); 好了,给分吧,哈哈
=============================================================================感谢你的回复,但是不知道你试没试过上述方法?
不可能的。
用 file_get_contents 只能取到 Repsonse Body 里的内容,自然也就取不到 Cookie了.
用 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)
虽然没有生成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
==========================================
$responseHeaders = get_headers('http://127.0.0.1/WriteCookie.php',1);print_r($responseHeaders['Set-Cookie']);
刚试验了下curl,貌似也不行,生成不了COOKIE
下次 请求时,把这个 Cookie 添加到 Request Header 里就行了.
下次 请求时,把这个 Cookie 添加到 Request Header 里就行了.
======================================================我在做通行证接口,访问一个接口文件,生成多个域名的COOKIE。
你都从 Header 区获取了 Cookie
你完全可以在数据库里起一张表,临时 保存一下这个会话 COOKIE.这不是很好的设计思路吗?干嘛非抓着 cookie 文件不放?
你完全可以在数据库里起一张表,临时 保存一下这个会话 COOKIE. 这不是很好的设计思路吗?干嘛非抓着 cookie 文件不放?
=========================================================
现在是没有COOKIE,要生成COOKIE,所以再没生成之前Header区时没有COOKIE的。用数据库保存会话COOKIE?不是吧?我如果很多频道都要使用这个登录信息,莫非都要SELECT?
我没有抓着COOKIE不放,但是我不知道通行证登陆状态给其他子频道使用的时候不用COOKIE还能用什么?
=====================================================
登陆页面生成多个域名COOKIE
如果同顶级域.只需要设置COOKIE domain 至顶域就行了.如果顶域不同. 则需要在其它需添加一个设置COOKIE的接口. 登陆后,在一个跳转页分别调用该域的接口,设置COOKIE.