В настоящее время я создаю веб-приложение, которое использует сочетание аутентификации OpenID и uname / pw для аутентификации пользователей.Пользователям предоставляется сеанс PHP при успешном входе в систему, и некоторая информация об их учетной записи (адрес электронной почты, группа пользователей, бла-бла) записывается в этот сеанс.
Однако, может быть, мне или кому-то еще понадобитсякак администратор, чтобы обновить информацию о пользователях (или сразу же забанить их, если они очень непослушные).Я не решаюсь использовать тег killsession, подобный этому (псевдокод):
session_start();
mysql_start(connection_stuff);
if (mysql_query("SELECT FROM users WHERE uid = '$_SESSION['uid']' AND KillSession = true")) { Kill session, force reauthentication };
Однако, если сделать это так, есть два недостатка:
- Мы должны запрашивать базу данных каждый развремя, когда кто-то загружает страницу, чтобы увидеть, изменилось ли что-то
- Мы должны выйти из системы пользователя, который просто раздражает его (или перезагрузить все его переменные сеанса, которые не кажутся эффективными)
Можно ли каким-то образом изменить сеанс пользователя, пока он еще в нем , не прибегая к принуждению к повторному входу в систему ?Некоторые люди, похоже, предлагают в этом потоке стекового потока , используя session_id, чтобы перейти к пользователю, а затем поиграть с его переменными, но это похоже на способ сделать это.Заранее спасибо!