Ошибка при 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 выводится
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