2010-07-23 53 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

相关问题