КЛИЕНТ: start_session()
создает печенье (по умолчанию): Name: PHPSESSID; Content: 1q2w3e4r5t; Domain: '/'; Expires:...
если сеансы хранятся в файлах, почему файлы cookie все еще используются для их хранения?
SERVER: Он также создает файл, хранящийся в (мой случай): /var/lib/php/sessions
. Назовите это там: sess_1q2w3e4r5t
. (Абсолютный путь: /var/lib/php/sessions/sess_1q2w3e4r5t
)
Итак, у нас есть два физических вещей, связанных с сеансом, который я только что создал.
Какой смысл иметь и то и другое?
Могу ли я просто сохранить свою сессию в
/var/lib/php/sessions
независимо отuse_only_cookies
опции?У меня есть классический пример с переменной
$_SESSION['counter']
. Это означает, что каждый раз, когда я перезагружаю страницуexample.php
, приращение$_SESSION['counter']
(++
). Итак, в цикле нажатия кнопкиF5
, скажем, я получил55
как значение$_SESSION['counter']
. Наконец, я его, что печенье, но не/var/lib...
файл. После этого удаления я получаю56
, и цикл продолжается как обычно. Это просто заинтриговало меня и вызвало вопрос. Необходимы сеансовые файлы?По-прежнему возможен способ, которым мой сайт просто хранит сеанс только на сервере и не использует файлы cookie?
Вот как я удалил файл cookie. Уведомление counter
значение 69.
Тогда F5
:
А? Без файлов cookie все ваши запросы будут неактивными. – emaillenin
Но, как я уже сказал, после удаления cookie '$ _SESSION ['counter']' все еще сохранял то же значение ... исправьте меня, если я ошибаюсь, ссылаясь на него как на вид запроса –
Возможно, вы смешаете что удаление cookie не совпадает с удалением сеанса или переменной сеанса? Вам нужно будет использовать 'unset ($ _ SESSION ['counter'])' в PHP, чтобы * потерять * его значение. –