PHP запустит новый сеанс, если браузер закрыт и снова откроется.
Старый файл сеанса по-прежнему хранится в папке сохранения сеанса, но начинается новый сеанс.
Что php ищет в браузере, чтобы знать, что он должен начать новый сеанс?
Я думаю, что я действительно спрашиваю, что именно делает session_start () под капотом
Чтобы просто ответить на ваш вопрос, он ищет файл cookie с именем PHPSESSID, и если в запросе не добавлено куки-файл, выполняется вызов session_regenerate_id для инициализации значения cookie.
Затем cookie настойчиво используется на протяжении всей жизни браузера.
Если не применяются другие настройки, это урезанная версия поведения по умолчанию.
Файл cookie, содержащий идентификатор сеанса, устанавливается по умолчанию без истечения срока действия. Это означает, что он истечет, когда браузер закрыт. Таким образом, сеанс будет потерян в тот момент, так как клиент больше не будет иметь старый идентификатор сеанса.
Все, что вы хотите знать, уже написано здесь: http://www.php.net/manual/en/function.session-start.php
session_start () создает сеанс или возобновляет текущий на основе идентификатора сеанса, переданного через запрос GET или POST, или передается через файл cookie.
Когда вызывается session_start () или когда автозапуск сеанса запускается, PHP будет вызывать открытые и прочитанные обработчики сохранения сеанса. Это будет либо встроенный обработчик сохранения, предоставляемый по умолчанию, либо расширениями PHP (например, SQLite или Memcached); или может быть настраиваемым обработчиком, как определено session_set_save_handler (). Обратный вызов чтения будет извлекать любые существующие данные сеанса (хранятся в специальном сериализованном формате) и будет несериализован и использоваться для автоматического заполнения супергеллона $ _SESSION, когда обратный вызов чтения возвращает сохраненные данные сеанса обратно в обработку сеанса PHP.
В принципе, PHP пишет специальный файл в файловой системе (обычно в каталоге / tmp) и получает данные оттуда.
Идентификатор сеанса ( PHPSESSID ) сохраняется в файле cookie в браузере пользователей. Если ни один не найден / один недействителен, он создает его. Нижеприведенное изображение может помочь вам понять, что вы хотите знать (это из Chrome).
Когда PHP получает этот идентификатор сеанса, он ищет ответный сеанс, который сохраняется в сеансе save_path (обычно /tmp
на машинах Unix). Затем он дает вам доступ к информации, хранящейся в этом файле сеанса, с использованием супергеллона $ _SESSION .
Файлы cookie сохраняются, только если на странице PHP ничего не выводится до вызова session_start()
. Если что-то выводится, файл cookie не сохраняется, и вам нужен другой метод (как упоминалось, SQLite
или MySQL
) для хранения этих значений UNIQUE
и распознавания и разделения каждого пользователя.