Суть проблеммы:
Я сделал свой первый сайт всего из 5 страничек на php+html. Сегодня я решил сделать на сайте пользователей, т.е. регистрацию, авторизацию, куки, сессии и т.п.
Перечитал около 5-8 уроков и из них выбрал этот. Создал новую базу, разместил файлы в папке.
Сразу оговорюсь, работаю на Denwer3.
В браузере вхожу на my-first-site/register.php заполняю поля логин и пароль, после чего на экране отображается сообщение:
Warning: Cannot modify header information - headers already sent by (output started at S:\home\loginpass\www\register.php:8) in S:\home\loginpass\www\register.php on line 48
Причём в базе запись создаётся.
Цитата строки 48 в файле register.php:
header('Location: login.php'); exit();
Если я убираю header('Location: login.php'); то ошибка не возникает, но страница не перенаправляет меня на login.php. Да и с этой строкой я остаюсь на register.php
Что у меня не так? Подскажите
Спустя 23 минуты, 16 секунд (17.07.2009 - 12:10) Alecs написал(а):
Проверь, не выводится ли что либо до этой строчки. Заголовки могут быть посланы только до начала вывода информации.
Спустя 2 минуты, 58 секунд (17.07.2009 - 12:13) boro-da написал(а):
Alecs, посмотри пожалуйста здесь
http://habrahabr.ru/blogs/php/13726/
Это оригинал урока откуда я всё взял.
ничего не менял, кроме логин и пароль пользователя базы данных и название бд.
Или дайте какой-нибудь оператор которым можно заменить header('Location: login.php');
http://habrahabr.ru/blogs/php/13726/
Это оригинал урока откуда я всё взял.
ничего не менял, кроме логин и пароль пользователя базы данных и название бд.
Или дайте какой-нибудь оператор которым можно заменить header('Location: login.php');
Спустя 14 минут, 24 секунды (17.07.2009 - 12:28) Stuff_f написал(а):
там точно я ваг говорю, ощибка из-за тегов, типа <meta> или <title> воть
Спустя 7 минут, 17 секунд (17.07.2009 - 12:35) boro-da написал(а):
А как же тогда без них?
Подключать через include?
Подключать через include?
Спустя 4 минуты, 42 секунды (17.07.2009 - 12:40) Alecs написал(а):
Цитата (boro-da @ 17.07.2009 - 09:13) |
Alecs, посмотри пожалуйста здесь http://habrahabr.ru/blogs/php/13726/ Это оригинал урока откуда я всё взял. ничего не менял, кроме логин и пароль пользователя базы данных и название бд. Или дайте какой-нибудь оператор которым можно заменить header('Location: login.php'); |
Зачем замусоривать форум если вы даже не пытаетесь осмыслить ответ? Вот здесь документация для PHP4, по данному вопросу подходит и для других версий.
PS: Если вы начали вывод тегов то сырой заголовок вы уже послать не сможете.
Спустя 3 минуты, 2 секунды (17.07.2009 - 12:43) boro-da написал(а):
Alecs, Я извиняюсь если мои действия оцениваются как замусоривание, просто я не могу разобраться с этим вопросом. Большое спасибо за полезную ссылку.
Спустя 9 минут, 5 секунд (17.07.2009 - 12:52) Mizka написал(а):
PHP |
Warning: Cannot modify header information - headers already sent by (output started at S:homeloginpasswwwregister.php:8) in S:homeloginpasswwwregister. |
эта ошибка возникает, если ты делаешь любой вывод инфы перед отправкой хедеров
Спустя 1 час, 20 минут, 53 секунды (17.07.2009 - 14:13) andreevich написал(а):
инклудить не поможет, ведь подключаемом файле тоже может быть пустые строки в начале файла, теги <meta> и т.д
если без <meta> или <title> никак, то можно обойти следующим образом
если без <meta> или <title> никак, то можно обойти следующим образом
PHP |
echo "<meta />"; |
и т.д.
Спустя 9 часов, 58 минут, 59 секунд (18.07.2009 - 00:11) boro-da написал(а):
Mizka , andreevich Спасибо!
Сделал через include без пустых строк
Сделал через include без пустых строк