В данных сеанса PHP обычно хранятся в файле. Единственное, что хранится в файле cookie, это идентификатор сеанса. Когда сеансы разрешены и действительный сеансовый файл cookie найден, PHP загружает данные сеанса пользователя из файла в супер-глобальный, называемый достаточно забавно SESSION.
Основные сеансы начинаются с использования session_start();
, вызываемого перед тем, как любой текст будет отправлен в браузер. то элементы добавляются или удаляются из объекта сеанса с помощью простой индексации массивов, например.
$_SESSION['favcolour'] = 'blue';
позже ...
$favcolour = $_SESSION['favcolour'];
основного куки только сессии (без локального хранения) могут быть созданы с помощью вызова
set_cookie('favcolour','blue'[,other params]);
, прежде чем какой-либо текст отправляются в браузер, затем извлекается из файла cookie superglobal
$favcolour = $_COOKIE['favcolour'];
вам не нужно звонить session_start()
, если вы делаете только сеансы cookie.
факультативный [, другой PARAMS] более совершен и может быть считан о здесь http://www.php.net/manual/en/function.setcookie.php
Сессия может стать очень сложной дискуссией, я предлагаю делать некоторую легкую работу в них, а затем расширить свои знания.
DC
все, что вы когда-либо хотели знать о PHP сессий
http://www.php.net/manual/en/book.session.php
DC
Для повторного использования кода обработки сеанса РНР вам нужно будет добавить обработчик записи с помощью session_set_save_handler
, а затем ничего не делает в этом обработчике. Это потому, что его вызываемый после выхода в браузер закрыт, поэтому вы не можете отправить что-либо в браузер.
Прежде чем записывать данные без заголовка в браузер, используйте функции set_cookie и сохраните содержимое массива $ _SESSION (после сериализации и шифрования) в файл cookie. при запуске приложений вы можете прочитать cookie, неэтериализируя его и помещая в массив $ _SESSION.
Это быстрый намек на то, что делать, поскольку я никогда не делал этого, я предпочитаю писать все свои собственные файлы cookie. Там могут быть некоторые gotcha's, но его не трудно провести несколько тестов, чтобы найти какие-либо результаты.
DC
Я не уверен, что я следую. Вы хотите хранить данные сеанса в файлах cookie? Это хорошая идея? –
Обратите внимание, что файлы cookie могут хранить максимум 4 КБ данных. Как правило, вы не видите хранилище сеансов на основе файлов cookie.Также учтите, что некоторые пользователи полностью отключили файлы cookie или установили ограничительный доступ с помощью политики безопасности браузеров. –
@cballou: Обычные старые сессии обычно также используют файлы cookie. Однако они просто хранят SESSID, а остальные данные хранятся на сервере. Хотя я думаю, что PHP попытается наполнить SESSID параметром 'GET', если файлы cookie отключены. – mpen