|
|
|
| Вот функция установки куки:
function setallcookie($login, $password)
{
$tmppos = strrpos($_SERVER['PHP_SELF'],"/") + 1;
$path = substr($_SERVER['PHP_SELF'], 0, $tmppos);
setcookie("login", $login, time() + 3600*24*5,$path);
setcookie("Password", $password, time() + 3600*24*5,$path);
setcookie("forum", "MyForum", time() + 3600*24*5,$path);
}
|
Вот вызов функции:
setallcookie($login, $password);
|
А вот ошибки которые выводятся:
Warning: Cannot modify header information - headers already sent by (output started at z:\home\test1.ru\www\system\reg.php:80) in z:\home\test1.ru\www\system\utils\functions.php on line 6
Warning: Cannot modify header information - headers already sent by (output started at z:\home\test1.ru\www\system\reg.php:80) in z:\home\test1.ru\www\system\utils\functions.php on line 7
Warning: Cannot modify header information - headers already sent by (output started at z:\home\test1.ru\www\system\reg.php:80) in z:\home\test1.ru\www\system\utils\functions.php on line 8
|
Примечание:
Данные $login и $password передаются параметром POST.
Куки не устанавлюются. Сами куки включены! | |
|
|
|
|
|
|
|
для: 27
(24.09.2005 в 10:06)
| | попробуй заменить
setallcookie($login, $password);
на
$_cookie(login, password); | |
|
|
|
|
|
|
|
для: 27
(24.09.2005 в 10:06)
| | Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.
http://www.softtime.ru/forum/ead.php?id_forum=1&id_theme=147
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=148
http://www.softtime.ru/group/id_group=12 | |
|
|
|
|
|
|
|
для: cheops
(24.09.2005 в 11:52)
| | это нынче прикол такой в разных постах писать одно и то же? :)))) | |
|
|
|
|
|
|
|
для: 10100100
(24.09.2005 в 12:00)
| | Нет, это просто два разных вопроса на одну и туже тему :))) я этот пост раз 50-100 запостил :))) Это действительно очень распространённая ошибка - так как вызов функции header() зависит от вывода в окно браузер - это нетипично для языков программирования, поэтому такая ошибка возникает очень часто. Разработчики PHP отказались от буфферизации вывода, поэтому его необходимо организовывать вручную. Без буфферизации любой вывод в окно браузера по протоколу означает, что передача HTTP-заголовков закончилась и больше они посылаться не будут. Поэтому если хоть один байт отсылается в браузер, ни header(), ни setcookie(), ни session_start() не смогут выполнить свою работу - так как все они работают на отправке HTTP-заголовков, которые просто обязаны быть отправлены до тела документа. | |
|
|
|
|
|
|
|
для: cheops
(24.09.2005 в 11:52)
| | С установкой всё нормально!
Вот следущее:
if(!empty ($_COOKIE['login']))
{
$author = $_COOKIE['login'];
}
else
{
$author = 'Гость';
}
|
Вот ошибка:
Notice: Undefined index: login in z:\home\test1.ru\www\index.php on line 2
Что тут не так? | |
|
|
|
|
|
|
|
для: 27
(24.09.2005 в 14:00)
| | Notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE
|
Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
?>
|
В качестве параметра, которой передать соответствующий уровень обработки ошибок.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4985 | |
|
|
|
|
|
|
|
для: cheops
(24.09.2005 в 20:43)
| | Спасибо я разобрался.... Ошибки были из - за следуещего:
empty я заменил на isset.
Область видимости куки ограничивалась только одной папкой.. | |
|
|
|
|
|
|
|
для: 27
(25.09.2005 в 15:26)
| | Только хотел про isset сказать | |
|
|
|