2010-07-23 4 views
4

Можно создать дубликат:
Headers already sent by PHPPHP заголовки уже отправлены ошибку

У меня есть один файл PHP, с помощью этого кода в нем:

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

Абсолютно без пробелов до или после тегов открытия или закрытия php, и я получаю

Обычно, когда я получаю эту ошибку, 1 является номером строки проблемы, но в этом случае строка 1 не имеет лишних пробелов. У меня только этот код на странице, и я не включаю никаких других файлов.

Я использую xampp на окнах xp. Любые идеи о том, что происходит или как я могу отследить, что действительно вызывает проблему.

Благодаря

+1

только намек, если вам не нужно выводить какие-либо необработанные материалы, не используйте закрывающий тег. –

+0

Спасибо, я обычно это делаю, чтобы избежать этой ошибки. – Joe

ответ

11

Скорее всего, что у вас есть то, что известно как BOM (Byte Order Mark) в файле. В зависимости от того, какой редактор вы используете, вам нужно отключить добавление спецификации ...

+1

Спасибо за ссылку @Gordon – ircmaxell

+0

Я использую Komodo Edit, который никогда не задавал мне проблемы раньше. Я попытался использовать простой старый блокнот, и у меня все еще есть проблема. – Joe

+0

Ну, единственное, что я могу придумать, - это что-то делать с 'auto_prepend_file' ... Вы проверили свой PHPInfo? Кроме того, вы говорите, что пытались использовать блокнот, вы писали напрямую в блокноте? Или вы скопировали и ввели (поскольку блокнот не может отображать спецификацию, если он есть, но он, возможно, был скопирован) ... – ircmaxell

0

Если вы уверены, что это не спецификация, вызывающая ошибку, проверьте свой httpd.conf и любые файлы .htaccess, если добавьте другие файлы. Посмотрите на что-то вроде этого:

<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

0

Попробуйте использовать WAMP, он не показывает эта ошибка, убедитесь, что у вас есть пробелы до или после кода. Для этого, если вы используете notepad ++ или editplus, перейдите в формат и выберите форматирование unix, и все должно работать нормально.

ИЛИ

попытка размещения этого в верхней части страницы:

<? ob_start(); ?> 

затем в нижней части страницы вместо этой строки кода:

<? ob_flush(); ?> 
+0

Я не собираюсь устанавливать wamp только для этого. Плюс, если ошибка все еще там, не исправление ее не поможет. – Joe

+0

см. Решение размещено, что должно служить вашей цели. И вы никогда не столкнетесь с этим предупреждением снова. – Yash

+1

Это не исправление, а взлома. Я хотел бы исправить эту проблему. – Joe

Смежные вопросы