JBTALKS.CC

标题: [求助] php set/get cookie 的问题 [打印本页]

作者: soochen    时间: 2009-7-14 01:00 PM
标题: [求助] php set/get cookie 的问题
是这样的
当我在第一行set了cookie之后在第二行我echo 出来时拿不到的
必须refresh一次那个page 才拿得到

就是说当我:
setcookie('testingcookie', 'testvalue', time()+3600*24);
echo $_COOKIE['testingcookie'];

然后我看不到 'testvalue'
当我refresh page 之后才看到

于是当我尝试这样:
setcookie('testingcookie', '', time()-999999999999);
setcookie('testingcookie', 'testvalue', time()+3600*24);
echo $_COOKIE['testingcookie'];

我先clear掉旧的 再set新的 然后再echo
可是因为我每次都要refresh后才看得到
所以如果我这样放的话
不管怎么refresh我都看不到 testvalue
请问有谁知道哪里出错吗?
作者: Super-Tomato    时间: 2009-7-14 03:14 PM
原帖由 soochen 于 2009-7-14 01:00 PM 发表
是这样的
当我在第一行set了cookie之后在第二行我echo 出来时拿不到的
必须refresh一次那个page 才拿得到

就是说当我:
setcookie('testingcookie', 'testvalue', time()+3600*24);
echo $_COOKIE['testingcookie'];

然后我看不到 'testvalue'
当我refresh page 之后才看到

于是当我尝试这样:
setcookie('testingcookie', '', time()-999999999999);
setcookie('testingcookie', 'testvalue', time()+3600*24);
echo $_COOKIE['testingcookie'];

我先clear掉旧的 再set新的 然后再echo
可是因为我每次都要refresh后才看得到
所以如果我这样放的话
不管怎么refresh我都看不到 testvalue
请问有谁知道哪里出错吗?


setcookie 之後是必須刷新頁面方可獲取值
而你第一行 time() - 9999999..... 這行不知道你是否了解時間只要小於當前 server 時間即是 expire cookie
既然 expire 了, 必然就無法再取得 cookie 的值, 所以不管你如何刷新都是無法取得你想要的 cookie 值


要使用 cookie 的話你可以這樣設定

if(!isset($_COOKIE['testingcookie']))
     setcookie('testingcookie', 'testvalue', time()+3600*24)


這樣一天之內該 cookie 值則有效而能夠被讀取
作者: soochen    时间: 2009-7-15 10:58 AM
原帖由 Super-Tomato 于 2009-7-14 03:14 PM 发表


setcookie 之後是必須刷新頁面方可獲取值
而你第一行 time() - 9999999..... 這行不知道你是否了解時間只要小於當前 server 時間即是 expire cookie
既然 expire 了, 必然就無法再取得 cookie 的值, 所以 ...

明白你的意思
所以我是在
setcookie('testingcookie', '', time()-999999999999);
之后就
setcookie('testingcookie', 'testvalue', time()+3600*24);
因为我想先clear掉旧的再set新的
然后再立刻提出来
(其实我只是做测试用 因为我一直get不到我的cookie 所以才这样放 实际并没有这样设的)

但是看到你说的:setcookie 之後是必須刷新頁面方可獲取值
那我就知道问题了
我面对的问题就是一直没办法在设了过后立刻提出来
现在才知道原来cookie是一定要刷新的

谢谢你的解答哦




欢迎光临 JBTALKS.CC (https://jbtalks.my/) Powered by Discuz! X2.5