2011-08-22 67 views
1

我參加考試時遇到問題。 做任何人知道爲什麼?關閉php緩衝區設置後,爲什麼沒有設置cookie?

關閉php緩衝區設置後,爲什麼沒有設置cookie?

<html> 
<head> 
<title>Question</title> 
<?php 
$value = 'something from somewhere'; 
setcookie("QuestionCookie", $value); 
?> 
</head> 
<body> 
</body> 
</html> 
+1

Cookie是HTTP標題,並且需要在ANY輸出發送到瀏覽器之前發送。 – CharlesLeaf

+0

php.net/setcookie – Sam152

+0

你用什麼來嘗試讀取cookie? – cwallenpoole

回答

2

您必須在任何其他輸出之前調用setcookie()。通過在調用setcookie()之前生成HTML,可以消除瀏覽器在HTML文檔標題之外接收任何其他HTTP標頭(Cookie是標頭)的功能。

<?php 
// Set cookie before any output 
$value = 'something from somewhere'; 
setcookie("QuestionCookie", $value); 
?> 

<html> 
<head> 
<title>Question</title> 
</head> 
<body> 
</body> 
</html> 
0

您需要在任何內容熄滅之前指定所有標題。 Cookies使用標題告訴瀏覽器要存儲哪些數據,所以他們需要在任何輸出之前。

<?php 
$value = 'something from somewhere'; 
setcookie("QuestionCookie", $value); 
?> 
<html> 
<head> 
...