Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Warning: Cannot modify header information - headers already sent by

Сообщения:  [1-9] 

 
 автор: cheops   (22.11.2007 в 12:31)   письмо автору
 
   для: devil943   (21.11.2007 в 17:09)
 

Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.

http://www.softtime.ru/group/id_group=12

   
 
 автор: devil943   (21.11.2007 в 20:03)   письмо автору
 
   для: Lelik   (21.11.2007 в 19:43)
 

>тогда внимательней в код смотреть надо:
>

> if(!issest($_COOKIE['test'])) 
>

>issest -> isset
Упссс.....
>
>также такой участок кода, пытающийся установить кукисы находиться по коду уже после отправленных заголовков:
>

><?php
>...
>if (
setcookie('text''set'))
>{
>   
header("Location: $PHP_SELF?probe=set");
>}
>...
>
?>
>

Да, ты прав... короче сделаю на новой странице..

   
 
 автор: Lelik   (21.11.2007 в 19:43)   письмо автору
 
   для: devil943   (21.11.2007 в 19:17)
 

тогда внимательней в код смотреть надо:

 if(!issest($_COOKIE['test'])) 

issest -> isset

также такой участок кода, пытающийся установить кукисы находиться по коду уже после отправленных заголовков:

<?php
...
if (
setcookie('text''set'))
{
   
header("Location: $PHP_SELF?probe=set");
}
...
?>

   
 
 автор: devil943   (21.11.2007 в 19:25)   письмо автору
 
   для: Lelik   (21.11.2007 в 17:22)
 

Lelik
Понял.... то есть мне передать данные из формы на другую страницу, а там их оприходывать и переадресовать назад... да?
А вывод вне тегов php не считается выводом на экран?

   
 
 автор: devil943   (21.11.2007 в 19:17)   письмо автору
 
   для: mihdan   (21.11.2007 в 18:03)
 

mihdan
Простите... в каком файле?

Lelik
Ну так тестовый кукис и создается до echo

   
 
 автор: mihdan   (21.11.2007 в 18:03)   письмо автору
 
   для: devil943   (21.11.2007 в 17:09)
 

первой строкой в файле напишите ob_start();

   
 
 автор: Lelik   (21.11.2007 в 17:22)   письмо автору
 
   для: devil943   (21.11.2007 в 17:09)
 

кукисы надо создавать до отправки заголовков браузеру, то есть до инструкций типа echo

   
 
 автор: bronenos   (21.11.2007 в 17:11)   письмо автору
 
   для: devil943   (21.11.2007 в 17:09)
 

Поиск по форуму по словам modify header information

   
 
 автор: devil943   (21.11.2007 в 17:09)   письмо автору
 
 

Простите... не знаю, что происходит. Пытаюсь создать куки, пишет что-то вообще не в тему.

Вот код:

if (!isset($_POST['go'])){
                echo ("<table cellspacing=\"0\" cellpadding=\"0\" style=\"padding: 4px;\"><tr><form method=\"post\" action=\"index.php\"><td>Логин:&nbsp;</td><td><input type=\"text\" class=\"input_text\" name=\"login\"></td></tr>");
                echo ("<tr><td>Пароль:&nbsp;</td><td><input type=\"password\" class=\"input_text\" name=\"passwd\"></td></tr><tr><td colspan=\"2\"><input type=\"submit\" name=\"go\" class=\"input_submit\" value=\"Войти\"></td></form></tr></table>");
            }else {
                    if ($_POST['login']=="devil943" || $_POST['login']=="Корвин" && $_POST['passwd']=="######" || $_POST['passwd']=="######") 
                    {
                        if(!isset($_GET['probe']))
                        {
                            if (setcookie('text', 'set'))
                            {
                                header("Location: $PHP_SELF?probe=set");
                            }
                        } else {
                            if(!issest($_COOKIE['test']))
                            {
                                echo ("<span style=\"font: 16px arial; color: #ff0000\">Авторизация не возможна, т.к. у вас отключены cookies");
                            } else { 
                                header("Location: $PHP_SELF");
                                if (setcookie('login', $_GET['login'], time() + 36288000) && setcookie('passwd', $_GET['passwd'], time() + 36288000))
                                {
                                    print_r($_COOKIE);
                                    echo ("<span style=\"font: 16px arial; color: #1f6f10\">Авторизация завершена.</span><br><br><span style=\"font: 13px arial; color: #ccc\">Переадресация через 1 секунду.</span>");
                                    echo ("<meta HTTP-EQUIV=\"Refresh\" Content=\"100; URL=../\">");
                                } else {
                                    echo ("<span style=\"font: 16px arial; color: #ff0000\">Неверный логин или пароль.</span><br><br><span style=\"font: 13px arial; color: #ccc\">Переадресация через 1 секунду</span>");
                                       echo ("<meta HTTP-EQUIV=\"Refresh\" Content=\"100; URL=index.php\">");
                                   }
                            }
                        }
                        
            } else echo ("<span style=\"font: 16px arial; color: #ff0000\">Неверный логин или пароль.</span><br><br><span style=\"font: 13px arial; color: #ccc\">Переадресация через 1 секунду</span>");
            echo ("<meta HTTP-EQUIV=\"Refresh\" Content=\"100; URL=index.php\">");
            }

Проверка явок\паролей пока временная.

Короче он выводит ошику еще на стадии проверки: включены ли куки.
Пишет вот что:

Warning: Cannot modify header information - headers already sent by (output started at http://www.o-rpg.com/top-site.inc:6) in /home/host4571/www/authorize/index.php on line 16

этот файл http://www.o-rpg.com/top-site.inc - ни чем мешать не может, т.к там вообще php скриптов нет, по сути перебрасывает только неизменное содержимое каждой страницы...

строка 16 сообтветствует
if (setcookie('text', 'set'))


так что... куки не хотят создаваться, хотя все правильно вроде с точки зрения языка.

С созданиями куков со временем таже финя (пробовал их ставить тудак, до куда исполнение скрипта дозходит.

Попутно задам вопрос:
то что у меня строка <link rel="shortcut icon" href="http://image.o-rpg.com/favicon.ico"> находится в инклуде не влияет на точ, то иконка не появляется? (путь верный).

   

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования