Важно ли менять сессию при каждом запросе страницы? - PullRequest
0 голосов
/ 25 января 2011

Это вызывает конфликты, когда пользователь открывает другую страницу в другом окне / вкладке.Так как предотвратить эти конфликты?Один из способов - установить одинаковый сеанс для каждой страницы. Каждый раз, когда пользователь выходит из системы / регистрируется, сеанс будет регенерирован.

<?php
//every page sets its own session if its not ajax so that it dont expire
if(is_ajax()){
$_SESSION['token'] = md5(rand());
}

echo '<div id="token">'.$_SESSION['token'].'</div>';
?>

токены будут передаваться из div.token для выполнения запросов ajax с помощью jquery,но затем, когда пользователь открывает другую вкладку, устанавливается новый сеанс, тогда другая страница возвращает ошибку «Неверный запрос».

1 Ответ

1 голос
/ 25 января 2011

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

Что вы храните в сессии?Похоже, что вы, вероятно, сохраняете что-то в сеансе, который принадлежит URL-адресу.

Редактировать: После просмотра вашего редактирования вы можете проверить самый лучший ответ в этом вопросе:

PHP - CSRF - Как заставить его работать во всех вкладках?

...