2009-08-23 83 views
0

我在PHP腳本中設置了一個cookie,它也有一些html,第一行是setcookie函數。Cookie值沒有被正確地修復

<?php 
setcookie("user", "xyz", time()+3600); 
?> 
<html> 
------ some html tags 
</html> 

在其他嘗試訪問的PHP腳本中,我得到一個空值。 $ user = $ _ COOKIE [「user」];

誰能告訴我爲什麼會發生這種情況?

+0

您的cookies已啓用,是嗎? – Sampson 2009-08-23 01:32:24

回答

1

將敏感信息存儲在這樣的cookie中並不是一個好習慣。 Cookie可以由用戶編輯,因此他可以在這裏設置他的「用戶」cookie以被識別爲他想要的任何用戶。更好的做法是使用sessions代替。通過會話,您可以使用$ _SESSION superglobal將任何敏感信息輕鬆安全地綁定到該特定用戶。

+0

我正在使用會話。但我有一些問題(http://stackoverflow.com/questions/1316054/slow-response-to-database-write-from-php) 這就是爲什麼我現在使用cookie。 – Vidya 2009-08-23 01:41:21

+1

我對這個問題有一個答案,我現在正在寫它。 – Havenard 2009-08-23 01:44:54

+0

http://stackoverflow.com/questions/1316054/slow-response-to-database-write-from-php/1317534#1317534 – Havenard 2009-08-23 02:01:11

2

您的瀏覽器已啓用Cookie,是嗎? var_dump($ _COOKIE ['user']); var_dump($ _COOKIE ['user']); var_dump($ _COOKIE ['user']); var_dump($ _COOKIE ['user']);準確打印? NULL,false?

+0

是啓用Cookie。事實上,該值設置,我可以在Firefox的選項/隱私選項卡中看到它。但價值不可接近。 var_dump($ _COOKIE ['user']);給我NULL。 – Vidya 2009-08-23 01:37:52

+0

你能粘貼更多代碼嗎?你沒有顯示整個腳本。這是一個文件,兩個文件?在同一臺服務器上,不是子網域的權利? – 2009-08-23 01:40:14

+0

好的。我將cookie設置爲http://mydomain/home.php ,我試圖通過http://mydomain/cl/base/test.php訪問它。這可能嗎 ? – Vidya 2009-08-23 01:43:55