|
|
|
| Я в конец запутался в сессиях и куках. Всю жизнь думал, что именно сессиям нужен sid, но недавно пропустил через print_r($_COOKIE) и заметил, что PHPSESSID отображается, а в сессиях нет.
Потом возник еще один вопрос, почему COOKIE сразу не присваиваются. Если я у себя на локалке cookie устанавливаю с помощью setcookie, то вот такой код правильно отобразиться только со второй загрузки
<?
setcookie("name",$name,time() + 600);
echo $_COOKIE['name'];
?>
а вот такой с первой
<?
$_COOKIE['name']="Вася";
echo $_COOKIE['name'];
?>
|
И еще почему у меня на локалке, когда я использую сессии страница не сохраняется.
P.S. И объясните, пожалуйста, как там все работает, где какие статейки надо почитать. Заранее ОЧЕНЬ благодарен. | |
|
|
|
|
|
|
|
для: Ziq
(02.08.2005 в 08:10)
| | Прочитай учебник на этом сайте http://www.softtime.ru/bookphp/gl8_1.php.
Может поможет. Если нет, то потом спрашивай | |
|
|
|
|
|
|
|
для: HoLsT
(02.08.2005 в 08:20)
| | По-моему эта книга не отвечает ни на один из заданных мной вопросов. Но все равно спасибо за то, что откликнулись. | |
|
|
|
|
|
|
|
для: Ziq
(02.08.2005 в 08:50)
| | А ты попробуй поставить в php.ini установку кук по умолчанию.
Я точно не помню как выглядит строка, но она находится в разделе SESSION. (там что-то use.session.cookie). Поставь там единицу и куки в сессиях будут устанавливаться автоматически.
А по поводу страницы, что не сохраняется? Можешь пояснить поподробнее? | |
|
|
|
|
|
|
|
для: Ziq
(02.08.2005 в 08:10)
| | 1) SID может передаваться двумя способами, либо через COOKIE, как у вас, либо через параметр GET, поэтому ничего удивительного, что в COOKIE имеется PHPSESSID нет - номер SID как-то нужно закрепить за клиентом, а COOKIE - это идеальное решение (если они включены). А уже по SID сервер находит файл сессиии у себя во временной директории.
2) Всё правильно COOKIE устанавливаются не сразу, так как cookie хранятся на машине клиента, а массив $_COOKIE на сервере. Т.е. сервер посылает требование установить cookie - она ещё не установлена и массив $_COOKIE пуст. В следующий запрос, когда клиент уже установит cookie, он пошлёт её серверу в HTTP-заголовке и сервер поместит её в $_COOKIE - поэтому складывается впечатление, что cookie устанавливается со второго раза. Просто так устроент протокол HTTP. | |
|
|
|
|
|
|
|
для: cheops
(02.08.2005 в 12:53)
| | А что если на одной странице объявить COOKIE так
setcookie("name",$name,time()+600);
|
А на другой странице так
,то после этого останется аргумент time()+600 | |
|
|
|
|
|
|
|
для: Ziq
(03.08.2005 в 06:57)
| | Да аргумент time()+600 не претерпит изменений и через 10 минут после установки cookie будет уничтожена. | |
|
|
|