2012-06-16 82 views
-3

可能重複:
Headers already sent by PHPPHP和會話,頭部已經發送

我知道我必須在頁面的最頂端使用session_start(),所以HTTP標頭可以做他的在HTTP正文開始發送到客戶端之前的作業。但它對我來說效果不好。

在這裏,我想重置會話...

<?php 
ini_set("display_errors", 0); // Even without this it doesn't work, it's temporary to hide the problem 
session_start(); 
$_SESSION = array(); // Clear the session 
$_SESSION['state'] = "noConnection"; 
?> 

<!DOCTYPE html> 
<html> 
    <head> // blah blah 
+1

「<?php'標記之前是否有任何雜散空格或換行符? – Cranio

+2

在任何包含關閉'?>'標記之後,還要小心任何事情。如果你的頁面只是PHP,我建議不要使用'?>'標籤來避免這個問題。 – Brad

+1

這是完整的腳本? 只有可能出現的錯誤,我可以想象它是否 - 在開始標記之前有一些空格。如果文件位於utf8中 - 請檢查它是否沒有BOM(將文本添加到新文檔並保存在ansii中) – karka91

回答

2

正確答案是確保沒有任何東西,甚至沒有空格,或UTF8 BOM字符,在第一次打開<?php標記之前。

作弊的答案是將php.ini的output_buffering指令設置爲On

+0

我的文件使用UTF8格式編碼,我將它們轉換爲UTF8不帶BOM。非常感謝 ! –

+0

很高興我能幫到你。可悲的是,很少有人似乎記得BOM可以產生的巨大影響,並且總是認爲這是你在空間方面的錯。 –

+0

是真的,我在一些論壇上發現的全部都是關於空白的...哈哈 –

相關問題