2016-06-12 93 views
1

在我的腳本中,除非我呼叫session_start(),否則print_r($_COOKIE)將顯示空數組,無論頁面刷新多少次。我正在跳過一個遇到過這個問題的人,並且能夠發出更多的光。PHP cookie將不會設置,除非我開始會話

//session_start(); // will not set if i remove this 
if(!isset($_COOKIE['dvr'])){ 
    $cookieDN = 'DVR'; 
    $cookieDV = 2; 
    setcookie($cookieDN, $cookieDV, strtotime("today 6:59"),"/foo/","www.domain.com",FALSE,FALSE); 
}print_r($_COOKIE); // prints null when session_start() is not called 
+0

可能是「DVR」和「dvr」的任何問題? – Ali

+0

http://www.w3schools.com/php/php_cookies.asp 這是指設置cookie,我認爲你的第三,第四參數在setcookie函數 和cookie名稱區分大小寫。 –

+0

謝謝,我查看了鏈接。更新了區分大小寫錯誤DVR和dvr錯誤。但對我而言仍然是一個謎。我在兩臺獨立的服務器上進行了測試。腳本在我的在線服務器上運行並設置了cookie,但在官方生產服務器上不起作用,除非我調用'session_start()'。通過這樣做,Cookie將不得不在瀏覽器午餐中重新設置。我不確定它是否與服務器配置有關? – Carbonite

回答

0

您在數組中使用缺少索引!

使用

$cookieDN = 'dvr'; 

insted的的:

$cookieDN = 'DVR'; 

,或者使用

if(!isset($_COOKIE['DVR'])){ 

insted的的:

if(!isset($_COOKIE['dvr'])){ 

PHP區分大小寫!

+0

感謝您的反饋,仍然沒有設置。我在兩臺服務器上測試過,除非調用session_start(),否則在主生產服務器上工作,但不工作。這意味着即使Cookie尚未過期,每次啓動瀏覽器時都必須重置Cookie – Carbonite