2011-03-14 35 views
1

嗨我有一個設置cookie的問題。我有這樣Setcookie對於不同的URL有所不同

http://www.myweb.com/series/Setayesh/Part-1
在此URL我檢查如果cookie是由該

if(isset($_COOKIE['cookiename'])) 
{ 
//Perform some operations 
} 
else 
{ 
setcookie('cookiename',$value,time()+36000) 
} 

它運作良好,對所有URL像

 
http://www.myweb.com/series/Setayesh/Part-1 
http://www.myweb.com/series/Setayesh/Part-1 
http://www.myweb.com/series/Setayesh/Part-1 
and so on 

但設置或不是URL時,網址將成爲

 
http://www.myweb.com/series/Pezeshkan/Part-1 
的如果條件不執行,它總是在相同的瀏覽器中進入其他條件。這是什麼問題?當我設置cookie時,我沒有設置任何url,那麼爲什麼它在這種情況下表現不同。

+0

Cookie的值是否爲'NULL'? – alex 2011-03-14 08:27:05

+0

沒有當我的網址更改提到的問題,它是空的,否則不是 – 2011-03-14 08:31:26

回答

5

問題是,Cookie設置爲您請求的路徑。在你的情況你發出的cookie的路徑

/series/Setayesh/Part-1 

所以,如果這條道路改變爲

/series/Pezeshkan/Part-1 

你不能看到餅乾了,因爲它是另一個路徑發出。 setcookie函數有第四個參數「path」,它允許明確指定路徑。如果將其設置爲「/」,則cookie將對整個域有效:

setcookie('cookiename',$value,time()+36000, '/') 

這應該可以解決問題。

+0

謝謝人,這是我所需要的...... – 2011-03-14 09:42:47

相關問題