Сессия потерялась при переходе с HTTP на HTTPS в PHP - PullRequest
62 голосов
/ 14 января 2009

При отправке пользователя на страницу оформления заказа они переключаются с http://sitename.com на https://sitename.com.

В результате $_SESSION переменные теряются.

На сайте имеется действительный сертификат SSL, который может или не может быть полезным.

Ответы [ 15 ]

0 голосов
/ 26 июля 2016

У меня была похожая проблема, однако, это решение было хорошо для меня, возможно, поможет другим в будущем

добавьте это в свой php.ini

suhosin.session.cryptdocroot = Выкл.

suhosin.cookie.cryptdocroot = Выкл.

0 голосов
/ 13 июля 2015

У вас есть выделенный IP? в некоторых общих средах https и http маршрутизируются через разные серверы, поэтому при переключении фактически теряется доступ к файлам cookie, поскольку они находятся в разных доменах.

решения будут: выделенный ip

принудительное использование https на всех страницах

0 голосов
/ 16 ноября 2011

Не беспокойтесь, это нормальное поведение, потому что HTTPS должен быть безопасным, и он выполняет свою роль.

Ниже приведены некоторые приемы, с помощью которых вы можете поддерживать сеанс при переключении с HTTP на HTTPS.

  1. Передача идентификатора сеанса между страницами с помощью GET

  2. идентификатор сеанса POST по POST

  3. Использование файлов для сохранения сеансов

  4. Использование файлов cookie для сеансов

  5. Использование базы данных для сохранения сеанса

Надеюсь, вы получите что-нибудь через мой ответ.

0 голосов
/ 14 января 2009

По умолчанию я ожидаю, что браузер будет обрабатывать подключения к http и https как совершенно разные сеансы. Хотя существует соглашение, что http://someUrl/ и https://someUrl/ будут указывать на одну и ту же страницу, это не гарантируется. У вас могут быть совершенно разные сайты, работающие через порт 80 (http) и порт 443 (https).

Я не знаю PHP, но обычно я не ожидал бы, что переменные сеанса будут свободно доступны между безопасными и незащищенными сеансами, например Я не ожидаю, что номер кредитной карты из моей последней проверки будет доступен для всех последующих небезопасных страниц, которые я посещаю.

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

0 голосов
/ 14 января 2009

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

Какой браузер вы используете специально?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...