2013-08-30 4 views
1

Я разработал сайт mvc с нуля и локально он работает, но какой сюрприз! Попытка сайта, загруженного на мой хостинг, не работает.Понять и исправить сеанс php, потерянный между https и http

Последовательность входа в систему следующая: Каждая страница проверяет, если вы зарегистрированы (http) и перенаправляетесь на страницу входа (https), если вы этого не сделаете. Всегда вы будете перенаправлены на страницу входа.

После некоторых исследований я обнаружил причину: сеанс php потерян между https и http.

Я не понимаю, почему работает локально и удаленно нет, но я думаю, что соответствующие php локальные настройки устанавливают идентификатор php sesssion как PHPESSID для http & https и удаленных настроек нет.

Думая о беде, я понимаю, я могу решить проблему прохождения идентификатора сеанса с HTTPS на HTTP или сделать весь сайт HTTPS переписывания URL, следующим образом:

intranet.mysite.com/anypage/

хостинг общий SSL https://server.subdomain/~user/public_html/intranet/anypage/

Дополнительная информация

страница размещается под Hostgator. Пути URL являются

сайт intranet.mydomain.com

SSL совместный доступ https://gatorxxx.hostgator.com/~user/intranet

, как я могу сделать сеанс работы между адресами?

спасибо.

ответ

3

Если я правильно понял, что вы размещаете страницу SSL в другом домене? Файл cookie сеанса PHP теряется, потому что файл cookie связан субдоменом (или доменом, в зависимости от того, какой cookiedomain установлен).

+0

Веб-сайт размещен под субдоменом интрасети следующим образом: intranet.mysite.com, но я должен использовать server.domain.com/~user/intranet, потому что я использую общий ssl, и я не могу использовать частный ssl. – ppk

+1

Вы можете отправить идентификатор сеанса с параметрами запроса в hvt/http envoirement и повторно инициализировать сеанс там с чем-то вроде session_id ($ _ GET ['session']); Существует только никакой возможности использовать (сеансовые) файлы cookie в разных доменах, не обмениваясь этой информацией с запросами. – riekelt

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