|
|
|
| После запуска сессии и регистрации переменной
492: session_start();
493: $logged = 1;
494: session_register("logged");
выдает ошибку:
Warning: Cannot send session cookie - headers already sent by (output started at d:\kolya\internet\server_1\www\account_page.php:15) in d:\kolya\internet\server_1\www\account_page.php on line 492
Warning: Cannot send session cache limiter - headers already sent (output started at d:\kolya\internet\server_1\www\account_page.php:15) in d:\kolya\internet\server_1\www\account_page.php on line 492
Подскажите, как избавиться от этой ошибке? | |
|
|
|
|
|
|
|
для: nickmas
(12.06.2005 в 20:30)
| | напишите перед session_start() символ @:
| |
|
|
|
|
|
|
|
для: Евгений Петров
(12.06.2005 в 20:43)
| | ? Кто вас этому учил?
Это лишь подавит вывод ошибки и испортит логику скрипта.
Читайте http://phpfaq.ru/headers | |
|
|
|
|
|
|
|
для: nickmas
(12.06.2005 в 20:30)
| | До строки 492 не должно быть вывода в окно браузера. Дело в том, что всё это инициирует отправку заголовков клиенту, так как заловки должны быть отправлены строго до тела самого документа. Сессия устанавливается через сессионные куки, которые в свою очередь устнавливаются также через заголовки - если до session_start() имеется какой-то вывод в окно браузера, то к тому времени когда интерпретатор доходит до этой функции - все заголовки отправлены - происходит вывод тела документа и дополнительные заголовки отправлены быть не могут. Подробнее можно почитать по ссылкам приведённым в теме http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=2775
PS Если отправить заголовки нужно всё-таки именно из этого места, а не раньше, то следует поместить весь вывод в буффер и отправить его клиенту в конце скрипта. Для этого предназначены фукнции управления буффером http://www.softtime.ru/group/id_group=12 | |
|
|
|