|
|
|
|
|
для: devil943
(21.11.2007 в 17:09)
| | Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.
http://www.softtime.ru/group/id_group=12 | |
|
|
|
|
|
|
|
для: Lelik
(21.11.2007 в 19:43)
| | >тогда внимательней в код смотреть надо:
>
> if(!issest($_COOKIE['test']))
>
|
>issest -> isset
Упссс.....
>
>также такой участок кода, пытающийся установить кукисы находиться по коду уже после отправленных заголовков:
>
><?php
>...
>if (setcookie('text', 'set'))
>{
> header("Location: $PHP_SELF?probe=set");
>}
>...
>?>
>
|
Да, ты прав... короче сделаю на новой странице.. | |
|
|
|
|
|
|
|
для: devil943
(21.11.2007 в 19:17)
| | тогда внимательней в код смотреть надо:
if(!issest($_COOKIE['test']))
|
issest -> isset
также такой участок кода, пытающийся установить кукисы находиться по коду уже после отправленных заголовков:
<?php
...
if (setcookie('text', 'set'))
{
header("Location: $PHP_SELF?probe=set");
}
...
?>
|
| |
|
|
|
|
|
|
|
для: Lelik
(21.11.2007 в 17:22)
| | Lelik
Понял.... то есть мне передать данные из формы на другую страницу, а там их оприходывать и переадресовать назад... да?
А вывод вне тегов php не считается выводом на экран? | |
|
|
|
|
|
|
|
для: mihdan
(21.11.2007 в 18:03)
| | mihdan
Простите... в каком файле?
Lelik
Ну так тестовый кукис и создается до echo | |
|
|
|
|
|
|
|
для: devil943
(21.11.2007 в 17:09)
| | первой строкой в файле напишите ob_start(); | |
|
|
|
|
|
|
|
для: devil943
(21.11.2007 в 17:09)
| | кукисы надо создавать до отправки заголовков браузеру, то есть до инструкций типа echo | |
|
|
|
|
|
|
|
для: devil943
(21.11.2007 в 17:09)
| | Поиск по форуму по словам modify header information | |
|
|
|
|
|
|
| Простите... не знаю, что происходит. Пытаюсь создать куки, пишет что-то вообще не в тему.
Вот код:
if (!isset($_POST['go'])){
echo ("<table cellspacing=\"0\" cellpadding=\"0\" style=\"padding: 4px;\"><tr><form method=\"post\" action=\"index.php\"><td>Логин: </td><td><input type=\"text\" class=\"input_text\" name=\"login\"></td></tr>");
echo ("<tr><td>Пароль: </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"> находится в инклуде не влияет на точ, то иконка не появляется? (путь верный). | |
|
|
|
|