Ошибка при header();

Печать RSS
119

3
Автор
Оранжевые штаны
0
капец.. вообще уже бред какойто)
создаю файлик. В нём пишу:
<?php
echo 'asdasd';
header('location: visavi.net');
?>
Сохраняю в UTF-8 (без BOM)
При переходе на страницу:
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\cms\index.php:2) in Z:\home\localhost\www\cms\index.php on line 3

Оранжевые Трусы
0
на денвере?
3
Автор
Оранжевые штаны
0
2. Капец Прокофьевич, да, а на хосте вообще никуда не переадресует
С

Малиновые штаны
0
ну правильно ты выводишь данные и пытаешься переадресовать а это неверно.
перед header в браузер ничего не должно выводиться
Изменил: Саня (12.09.2011 / 00:23)

Господин ПЖ
0
1. biv, до header не должно быть никакого вывода в браузер, а у тебя там asdasd выводится sad
Ж

Землянин
0
можно через буфер заголовки передавать, и все будет как ты написал работать.

Ктулху
0
Вообщем-то всё правильно написали, теперь варианты решения:
1) использовать ob_start(); в начале и ob_end_flush(); в конце
2) редирект (и остальные заголовки) передавать до вывода любого текста
3) написать в .htaccess "php_value output_buffering 4096" (только если php как mod_php)
В этом случае буферизация будет включена глобально (можно написать в php.ini эквивалетную директиву если php как CGI\FastCGI)

Чатланин
0
1. только сегодня познакомился с функцией header();
я думал редирект должен считаться более менее правильным вот так:
$url = "http://site.ru";
if ($url) {
header("Location: $url");
}
хотя есть и другие варианты, или я не понял автора))
Изменил: Don (30.01.2012 / 13:08)

2000 лет д.н.э.
0
Как по мне, так если в скрипте идет вывод в браузер а потом редирект, то этот скрипт плохо написан.
Не важно включена буферизация или нет.
If($a){
echo $a;
}else{
Header();
}
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск