Будет ли AJAX-скрипт сохранять сеанс в PHP? - PullRequest
1 голос
/ 28 июля 2010

Меня попросили создать сайт социальной сети, чтобы связать его с игрой. Игра на Flash (поставляется в виде файла .swf) и будет размещена на сайте социальной сети.

Одной из проблем, возникающих при тестировании и разработке, является тайм-аут сеансов. Я знаю, что длительность сеанса (теоретически) можно изменить с помощью php.ini, но в этом случае она, похоже, не сработала, скорее всего из-за ограничений нашего хостинг-провайдера.

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

Следовательно, если я поместил небольшой фрагмент JavaScript в заголовок моих страниц, который просто запускает запрос к файлу, размещенному на веб-сайте, будет ли этот сеанс сохраняться? Если да, есть ли недостатки в этой практике?

Ответы [ 2 ]

5 голосов
/ 28 июля 2010

Да, Мартин, это работает.Javascript имеет доступ к тем же файлам cookie, что и ваш сеанс PHP.Это означает, что на вашей странице вы делаете session_start ();включите и начните взаимодействовать с $ _SESSION, если страница AJAX отправляет запрос на эту страницу, тогда они совместно используют одни и те же файлы cookie, таким образом оба используют один и тот же $ _SESSION.

Страница 1 - Страница, получающая запрос AJAX

session_start();
die(isset($_SESSION['myvar']) ? 'it exists' : 'it does not exist');

Страница 2 - Страница, выполняющая запрос AJAX

session_start();
$_SESSION['myvar'] = 1;

Когда вы открываете страницу 2, сеанс запускается и устанавливает переменную сеанса 'myvar'.Если вы сделаете запрос AJAX со страницы 2 на страницу 1, то на странице 1 в сеансе будет установлена ​​переменная «myvar», и, следовательно, на выходе будет «она существует».

Надеюсь, это немного поможет демистифицировать сессиинемного для вас.

0 голосов
/ 28 июля 2010

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

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