PHP-сессия не сохраняется без файлов cookie - PullRequest
1 голос
/ 13 марта 2012

Если в браузере отключены файлы cookie, сеансы на нашем веб-сервере не являются постоянными.Это означает, что если я перейду на следующую страницу, я получу новый идентификатор сессии.На каждой странице, которую я перезагружаю, я получаю новый идентификатор сессии.С включенными cookie-файлами все в порядке.

Характеристики веб-сервера:

  • Версия PHP 5.3.3
  • Версия Apache 2.2.13
  • Веб-серверс SUSE Linux

Локально на моей установке XAMPP все работает.

Обновление:

У меня есть следующие настройки на каждой странице:

  • ini_set ('session.use_cookies', '0');
  • ini_set ('session.use_trans_sid', '1');
  • session_start ();

Идентификатор сеанса присутствует в URI, но когда я проверяю идентификатор сеанса на странице, это новый идентификатор, а при каждой перезагрузке - другой идентификатор.

Ответы [ 2 ]

5 голосов
/ 13 марта 2012

Да, конечно. Поскольку HTTP является протоколом без сохранения состояния, сеанс связан с пользователем путем сохранения идентификатора сеанса в файле cookie. Удаление (или отказ) этого куки завершит вашу сессию.

3 голосов
/ 13 марта 2012

Если вы не хотите, чтобы куки, вы должны передать идентификатор сеанса в URL:

Если вы не используете PHP 4.2.0 или новее, вам нужно включить его вручную при сборке PHP. Под Unix передайте --enable-trans-sid настройки. Если этот вариант сборки и вариант времени выполнения session.use_trans_sid включены, относительные URI будут изменены на содержать идентификатор сессии автоматически.

http://es.php.net/manual/en/session.idpassing.php

См. Также session.use_cookies и session.use_only_cookies.

Этот метод позволяет особенно легко отдавать ваши личные данные, просто делясь ссылкой, так что в настоящее время почти никто не использует ее.

...