PHP: Использование переменных сеанса, установленных в iframe в нескольких iframe - PullRequest
0 голосов
/ 06 октября 2010

Я использую систему управления контентом под названием liferay, которая позволяет очень легко добавлять фреймы на страницу. У меня есть различные различные iframes, которые я хочу использовать одни и те же переменные сессии php. Это не было бы проблемой, если бы главная веб-страница настраивала сессии. проблема в том, что сессии создаются в одном iframe, и я хочу использовать их в другом?

Обычно идентификатор сеанса может быть передан через URL, но это не так, как я его настроил. Там нет такой навигации. iframes отображают содержимое из базы данных на основе переменных сеанса, заданных в первом iframe, но они не связаны.

Может ли кто-нибудь помочь мне здесь? Я не уверен, как еще iframes могут совместно использовать переменные сеанса.

Спасибо

Джоунси

Ответы [ 2 ]

1 голос
/ 06 октября 2010

Если домен остается прежним, первый iframe создаст сеанс, а второй iframe просто поднимет его после session_start()

Вам не нужно передавать сеанс в URL для этого или чего-либо еще. Первый iframe во время записи данных сеанса заблокирует данные сеанса. Однако есть проблема: с iframe вы никогда не можете быть уверены, что первый iframe загружается первым, возможно, из-за перегрузки сети или чего-то другого, возможно, что второй iframe загружается первым. Так что, возможно, чтобы противостоять этой задержке, загрузите второй iframe немного.

0 голосов
/ 06 октября 2010

Как сказал Сабин, если вы используете отслеживание сеансов на основе файлов cookie (то, что PHP использует по умолчанию, если пользовательский агент поддерживает файлы cookie), сеанс будет выбран автоматически. Вы можете столкнуться с проблемами, если страницы, загруженные в Iframe, находятся в разных поддоменах. В этом случае вы должны использовать конфигурационную переменную session.cookie_domain.

ini_set("session.cookie_domain", ".domain.com");

...