2012-03-13 4 views
1

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

Specifcations по Webserver:

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

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

Update:

Я следующие настройки на каждой странице:

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

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

+0

Как говорили другие. HTTP является апатридом, поэтому вам нужен механизм для передачи этого контекста (обычно называемого SID) с одного запроса на следующий в сеансе. Подход std должен принимать * оба * cookie и запрашивать параметр sid. Кроме того, если в текущем запросе не было установлен cookie, добавьте sid = XXX в качестве параметра ко всем ссылкам сайта, которым нужен контекст сеанса. * Однако *, это имеет недостаток, что незнание пользователей может их сообщения сеанса связи - видел это много раз на форуме. – TerryE

ответ

5

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

+0

+1 Капитан, очевидный для спасения: D – Hannes

+0

есть причина, по которой большинство сайтов кричат ​​на вас, чтобы снова включить ваше печенье, если вы хотите войти в систему^_^ – user980058

+0

Я буду, что сеанс работает без файлов cookie. – user1266069

3

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

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

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

Смотрите также session.use_cookies и session.use_only_cookies.

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

+0

Я попробовал Сценарий по вашей ссылке со счетчиком. Но это то же самое, с файлами cookie и без файлов cookie не работают. Для нас сайт также должен работать без файлов cookie. – user1266069

+0

Если вы не понимаете информацию, предоставленную в любом ответе, не стесняйтесь просить разъяснений. Но, пожалуйста, не повторяйте один и тот же вопрос снова и снова, предполагая, что все, что вам нужно, - это готовый к использованию код, который вы можете вставить на свой сайт. –

Смежные вопросы