переменные сессии могут выжить из php -> html -> php? - PullRequest
0 голосов
/ 12 января 2011

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

так что, если у меня есть переменная сеанса в файле php, если после этого я открою html-страницу, а затем снова файл php, смогу ли я получить данные? или они все должны быть смежными?

Я пытался php->html->php, но я не мог получить переменные на другой стороне. возможно я делаю что-то не так.

Заранее спасибо

Ответы [ 4 ]

5 голосов
/ 12 января 2011

Не уверен на 100%, что вы имеете в виду, но если под «открытым» вы подразумеваете в браузере, звонки не обязательно должны быть соседними. Вам просто нужно сделать session_start() в каждом скрипте PHP, в котором вы хотите использовать данные сеанса.

2 голосов
/ 12 января 2011

Смежность не является чем-то, что действительно имеет отношение к этому вопросу.

С точки зрения PHP, сеансы - это, по сути, файлы, которые содержат сериализованные данные на сервере.Браузер, который вызвал скрипт, содержащий вызов session_start (), получает специальный токен, который идентифицирует сеанс на сервере, и он обычно (хотя и не обязательно) хранится как cookie.

Это фактически означает, что любой скрипт phpкоторый использует session_start () и получает идентификатор сеанса (через cookie или иным образом), будет читать и может использовать данные сеанса, если только они не были удалены из файловой системы сервера между вызовами или сеанс истек (честно говоря, я не уверенудаляет ли PHP сеансы с истекшим сроком действия на стороне сервера).

Доступ к чему-либо вне этой модели с помощью браузера (html-страница или даже другие сайты) никак не повлияет на это, если только эти действия не изменят или не удалятидентификатор сессии.

2 голосов
/ 12 января 2011

да ... переменная сеанса может выжить php->html->php.

Но на каждой странице php ... самая первая строка должна быть session_start()

0 голосов
/ 12 января 2011

Это простой способ (я предполагаю): Установить cookie , хранящий идентификатор сессии на первой странице php.Таким образом, каждая другая страница php может получить доступ к идентификатору сеанса и использовать его для восстановления сохраненных данных, независимо от того, сколько (даже чужих) страниц было между ними.

...