Проблемы с сессиями, различающимися от страницы к странице - PullRequest
0 голосов
/ 22 июля 2011

Хорошо,

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

Итак, у меня есть свой index.php, когда вы заходите на этот сайт, сеансы работают правильно, отсюда он проверяет, вошли ли вы в систему (сессия установлена), если вы это сделаете, он переместит вас на другой экран и будет использоватьajax запрашивает обновление страницы.

Если вы не вошли в систему, появится всплывающее окно меньшего размера (окно входа в систему), когда при входе в систему меньшее окно вызовет окно его создателя, сообщив, что пользователь правильно вошел в систему.и устанавливает сессию.К проблеме:

Сессия работает на : index.php, ajax_request.php (когда он вызывается через ajax из index.php), popup_window.php (когда он выскочилfrom index.php).

Сеанс не работает : в любое другое время, включая файлы php в том же каталоге, что и index.php, даже ajax_request.php и popup_window.php, когда они не вызываются из index.php

** обратите внимание, что popup_window.php использует openid для входа в систему, он перенаправляется поставщику openid, затем перенаправляется обратно (хотя я не думаю, что это будет иметь значение?).

Чтобы отладить это, я настроил пользовательские обработчики сеансов, которые вставляют сеансы в базу данных mysql. После этого я заметил, что он создает отдельные сеансы и идентификаторы сеансов для этих разных сценариев.Я очень смущен этим?Насколько мне известно, все параметры сеанса установлены по умолчанию, если только мой веб-хост не сделал что-то напуганное?

Почему мое приложение постоянно создает отдельные сеансы и не сохраняет их для одного и того же пользователя?Сессии одинаковы на нескольких вкладках, верно?

Я действительно инициирую session_start ();в каждом экземпляре страницы.Я попытался поиграть с 'ini_set ("session.use_cookies", 1);'и 'session_set_cookie_params (0, "/", "www.domain.com");'

Я могу иметь точно такой же код в index.php и test.php, иметь их в одном каталоге, ивсе же у них все еще есть различные сессии?

Любая помощь будет принята с благодарностью!

Спасибо, Джош

Ответы [ 2 ]

1 голос
/ 23 июля 2011

Если вы используете Apache, вы можете переписать, чтобы domain.com перенаправил на www.domain.com.

вот как вы можете начать, изменив свой файл .htaccess:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=302,NE,L]

Некоторое объяснение флагов:

'[NC]' = игнорировать регистр

'R = 302' = дать статус ответа 302

'NE' = Не кодировать параметр url (это необязательно, если у вас возникают проблемы с двойным кодированием apache в строке url)

0 голосов
/ 23 июля 2011

Итак, у меня возникли некоторые подозрения, поэтому я выполнил несколько тестов, и, как выяснилось, PHP считает домен http://www.domain.com отличным от http://domain.com,, хранящим отдельные сеансовые переменные для каждого.

Можно ли как-нибудь заставить все ссылки и все в моем домене быть теми или иными?

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