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

1. 3DwEp (12.09.2011 / 00:14)
капец.. вообще уже бред какойто)
создаю файлик. В нём пишу:
<?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

2. mozzzg (12.09.2011 / 00:19)
на денвере?

3. 3DwEp (12.09.2011 / 00:20)
2. Капец Прокофьевич, да, а на хосте вообще никуда не переадресует

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

5. Вантуз-мен (12.09.2011 / 00:55)
1. biv, до header не должно быть никакого вывода в браузер, а у тебя там asdasd выводится sad

6. Жека (12.09.2011 / 02:35)
можно через буфер заголовки передавать, и все будет как ты написал работать.

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

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

9. ramzes (30.01.2012 / 17:26)
Как по мне, так если в скрипте идет вывод в браузер а потом редирект, то этот скрипт плохо написан.
Не важно включена буферизация или нет.
If($a){
echo $a;
}else{
Header();
}

URL: https://visavi.net/topics/24821