2016-11-26 88 views
1

我正試圖學習如何設置cookie,並且以下代碼在本地服務器上正常工作,但由於某種原因,它不在活服務器上。下面是代碼爲什麼這段代碼只能在本地服務器上正常工作?

<?php 
    $test = 'false'; 
    if (isset($_COOKIE['test'])) $test = $_COOKIE['test']; 
    echo "<p><b>The value of the cookie 'test' is: $test</b></p>"; 
    setcookie('test', 'I love cookies'); 
?> 

我已經做了一些搜索,是誰的人有同樣的問題,但他回答他自己聲稱他想通了,什麼是錯的。這裏是他的回答:

已經完成了。問題在於設置cookie,因爲頭文件已經在該文件中發送,cookie沒有保存。現在完成了。:)

那麼,他是什麼意思?

+0

所以在遠程計算機,您不能設置曲奇餅? –

+0

是的,當我嘗試使用與在線服務器相同的代碼時,它不會生成cookies –

回答

3

您是否使用同一瀏覽器測試了本地主機和活動服務器(啓用了Cookie)?

編輯:

按照你的編輯,你應該設置Cookie,然後送樣回聲,print_r的等任何輸出......作爲setCookie方法命令發送到與頭一個瀏覽器,所有的標題應該輸出之前發送。你的代碼應該看起來像:

$test = 'false'; 
    if (isset($_COOKIE['test'])) $test = $_COOKIE['test']; 
    setcookie('test', 'I love cookies'); 
    echo "<p><b>The value of the cookie 'test' is: $test</b></p>"; 

如果你真的需要與輸出執行一些動作之前設置的cookie,您可以使用輸出緩衝溶液:

$test = 'false'; 
    if (isset($_COOKIE['test'])) $test = $_COOKIE['test']; 

    ob_start(); 
    echo "<p><b>The value of the cookie 'test' is: $test</b></p>"; 
    $buffer = ob_get_contents(); 
    ob_end_clean(); 

    setcookie('test', 'I love cookies'); 
    echo $buffer; 
+0

我做了,它只在本地主機上運行 –

+0

您看到了什麼?總是'虛假'? – Kainax

+0

是一直'虛假'。它與服務器時間有什麼關係? –

相關問題