2010-07-23 137 views
4

可能重複:
Headers already sent by PHPPHP的標題已經發出錯誤

我有一個單一的PHP文件,與此代碼在它:

<?php header("Location: somepage.php"); ?> 

絕對沒有空格前或者在php打開或關閉標籤後,我得到

Warning: Cannot modify header information - headers already sent by (output started at C:\ ... \test.php:1 

通常當我得到這個錯誤時,1是問題的行號,但在這種情況下,第一行沒有任何額外的空格。我只有這個代碼在頁面上,我沒有包含任何其他文件。

我在Windows XP上使用xampp。任何想法正在發生什麼,或者我如何才能找出真正導致問題的原因。

感謝

+1

只是一個提示,如果你不需要輸出任何未處理的東西,不要使用結束標籤。 – 2010-07-23 14:44:13

+0

謝謝,我通常會這樣做,只是爲了避免這個錯誤。 – Joe 2010-07-23 14:46:41

回答

11

有機會,你有什麼作爲文件中的BOM (Byte Order Mark)。根據您使用的編輯器,您需要關閉添加BOM ...

+1

感謝您的鏈接@Gordon – ircmaxell 2010-07-23 14:44:40

+0

我正在使用科莫多編輯,它從來沒有給我一個問題。我確實嘗試使用普通的舊記事本,但我仍然遇到問題。 – Joe 2010-07-23 14:48:52

+0

那麼,我能想到的唯一的其他事情就是'auto_prepend_file' ...你有沒有檢查過你的PHPInfo?另外,你說你嘗試使用記事本,你是否直接在記事本中書寫?或者你是否複製並粘貼(因爲記事本可能不會顯示BOM,但它可能已被複制)... – ircmaxell 2010-07-23 14:56:35

0

如果您確定它不是導致錯誤的BOM,請檢查您的httpd.conf和任何.htaccess文件if前置任何其他文件。尋找出這樣的事情:

<FilesMatch "\.(html?)$"> 
php_value auto_prepend_file /server/path/to/my/www_root/subdir/file.ext" 
</FilesMatch> 

還要檢查你的php.ini:http://de.php.net/manual/en/ini.core.php#ini.auto-prepend-file

0

嘗試複製/你的內容粘貼到使用記事本

+0

試過這個,它沒有工作。仍然收到錯誤。 – Joe 2010-07-23 14:46:11

0

嘗試使用WAMP另一個新的文件,它不顯示這個錯誤,確保你在代碼之前或之後沒有空格。爲此,如果您使用記事本++或editplus,請轉到格式並選擇unix格式,並且應該可以正常工作。

OR

嘗試在你的頁面的頂部放置此:

<? ob_start(); ?> 

然後在頁面的地方這行代碼的底部:

<? ob_flush(); ?> 
+0

我不打算爲此僅安裝wamp。另外,如果錯誤仍然存​​在,不修復它不會有幫助。 – Joe 2010-07-23 14:49:41

+0

請參閱發佈的解決方案,這應該可以滿足您的需求。你永遠不會再遇到這個警告。 – Yash 2010-07-23 14:51:20

+1

這不是一個真正的解決方法,而是一種破解。我想解決這個問題。 – Joe 2010-07-23 15:00:31

相關問題