В чем отличие setcookie () и $ _SESSION от session.use_only_cookies? - PullRequest
5 голосов
/ 11 ноября 2011

Мы можем отправить некоторые куки в браузер посетителя по setcookie().При определении значения с помощью $_SESSION['value'], если используется session.use_only_cookies, сеанс будет храниться только в браузерах посетителя.В чем разница между этими двумя случаями?

РЕДАКТИРОВАТЬ: Очевидно, что они в основном разные.Я просто имел ввиду разницу в их применении.Мы можем установить значение на стороне клиента, которое может быть получено в любое время (до истечения срока действия) равным образом с $ _COOKIE или $ _SESSION;например, чтобы идентифицировать возвращающегося посетителя.

Ответы [ 3 ]

6 голосов
/ 11 ноября 2011

Нет, если вы установите session.use_only_cookies, данные из сеанса не сохраняются на стороне клиента. Эти настройки влияют только на способ передачи идентификатора сеанса между клиентом и сервером.

В основном есть 2 способа передачи этого идентификатора сеанса:

  • Cookie на основе
  • на основе URL (с переменной GET, такой как PHPSESSID = ...)

При использовании параметра session.use_only_cookies запрещается использовать URL-адрес для передачи идентификатора сеанса, можно использовать только cookie.

5 голосов
/ 11 ноября 2011

Это совершенно разные вещи:

  1. setcookie() устанавливает cookie в браузере, но обычно это не сеансовый cookie. Файл cookie сеанса, который вы создаете с помощью session_start().
  2. $_SESSION[] устанавливает / получает значение для / из сеанса на стороне сервера.
  3. session.use_only_cookies убедится, что идентификатор сеанса отправляется только с cookie, а не, например, в URL.
5 голосов
/ 11 ноября 2011

Файл cookie хранится на стороне клиента (т. Е. «Внутри» клиента / браузера).
_SESSION сериализуется и затем сохраняется на сервере . Эти данные связаны с идентификатором сеанса. Например. при использовании обработчика сеанса файловой системы по умолчанию имя файла отражает идентификатор сеанса. Клиент (или ваш скрипт) должен предоставить этот идентификатор сеанса в последующих запросах, чтобы руководство сеанса php могло / снова загрузить данные сеанса. Одним из механизмов для этого является использование куки. session.use_only_cookies=On позволяет сессионному механизму php искать только идентификаторы сессий в файлах cookie.

...