作者MrMarcus (请勿忘记密码)
看板PHP
标题Re: [请益] 关於php读取cookie的问题
时间Sun Mar 12 02:41:08 2006
※ 引述《misatocat (天使级废材!)》之铭言:
: srand((double)microtime()*1000000); //乱数的产生
: $randvalue = rand();
: setcookie ("id", $randvalue,time()+365*24*60*60);
: 这边是我cookie产生的机制,在最後一行,我的cookie没什麽限制
: 之後,我在同一台主机两个不同的帐号放置了网页和执行
: 也就是 http://XXX/~a/cookie.php
: http://XXX/~b/cookie.php
: 理所当然 会产生/~a 名为"id"的cookie
: /~b 名为"id"的cookie
: 我想请问的是 如果我在同一台主机不同帐号想读取上列特定的cookie可行吗?
: 像是 /~c/loading.php 这支程式想去读取/~b/cookie.php所产生的cookie
: 还蛮烦脑的,先谢谢各位的解答
首先要了解的是,cookie资料是储存在浏览器端(有设定到期时间的,会存在
使用者的硬碟里,没有设定到期时间的,就只存在使用者的记忆体中,浏览器
关闭就会消失),而不是存在伺服器端。程式读不读得到某个cookie资料,
要看浏览器有没有传送这项资料给伺服器,浏览器不传送过来,程式在伺服器端
什麽也找不到。
而浏览器在向伺服器请求页面的时候,会看几项条件来决定是否要一并传送某些
cookie资料给伺服器,其中一项资料就是cookie的网域。浏览器不会将A网域的
cookie传送给B网域(Yahoo的程式读取不到eBay传给我的cookie,要是读得到
那可就天下大乱了)。然而如果两个cookie的网域名称相同,浏览器就会传送给
伺服器。因此依照你的状况,是可以让/~c/loading.php读取得到/~b/cookie.php
所建立的cookie,只要在/~b/cookie.php传送cookie的时候,注意两件事情:
1.cookie的网域(domain)设定为两个程式共有的网域名称。
2.cookie的路径(path)设定为/。不这样设定的话,/~a/路径下的程式读取不到
/~b/路径的程式建立的cookie。
至於如何设定cookie的网域与路径,请找php使用手册。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.153.37
1F:推 misatocat:果然是要从路径下手 谢谢了 03/12 16:42
2F:推 ngf666:网域可以存localhost吗? 03/13 19:41