В сеансе PHP данные обычно хранятся в файле. Единственное, что хранится в куки - это идентификатор сессии. Когда сеансы включены и найден допустимый файл cookie сеанса, PHP загружает данные сеанса пользователя из файла в суперглобальную систему, называемую достаточно забавно SESSION.
Основные сеансы запускаются с использованием session_start();
, вызываемого перед отправкой любого текста в браузер. затем элементы добавляются или удаляются из объекта сеанса с помощью простой индексации массива, например.
$_SESSION['favcolour'] = 'blue';
позже ...
$favcolour = $_SESSION['favcolour'];
базовые сеансы только cookie (без локального хранилища) могут быть созданы с помощью вызова
set_cookie('favcolour','blue'[,other params]);
перед отправкой любого текста в браузер, затем извлекается из суперглобального файла cookie
$favcolour = $_COOKIE['favcolour'];
вам не нужно звонить session_start()
, если вы делаете сеансы только с файлами cookie.
необязательные [, другие параметры] более продвинуты и о них можно прочитать здесь http://www.php.net/manual/en/function.setcookie.php
Сессии могут стать очень сложным обсуждением, я бы посоветовал немного поработать над ними, а затем расширить свои знания.
DC
все, что вы когда-либо хотели знать о сессиях PHP
http://www.php.net/manual/en/book.session.php
DC
Чтобы повторно использовать код обработки сеанса PHP, вам нужно добавить обработчик записи, используя session_set_save_handler
, а затем ничего не делать в этом обработчике. Это потому, что он вызывается после закрытия вывода в браузер, поэтому вы ничего не можете отправить в браузер.
Перед записью данных без заголовка в браузер используйте функции set_cookie и сохраните содержимое массива $ _SESSION (после сериализации и шифрования) в cookie. когда приложения запускаются, вы можете прочитать cookie, десериализовать его и поместить в массив $ _SESSION.
Это быстрый намек на то, что делать, потому что я никогда не делал этого, я предпочитаю писать все свои собственные файлы cookie. Возможно, есть некоторые ошибки, но не сложно, несколько тестов должны найти какие-то ошибки.
DC