уничтожить сеанс после того, как пользователь удален, но все еще вошел в систему - PullRequest
3 голосов
/ 05 марта 2012

В файле login.php я проверяю, все ли в порядке, и создаю ли я сеанс и перенаправляю пользователя

 $success = $dbh->prepare("SELECT UserId FROM users WHERE username =:username 
AND password=:password");
    $success->bindParam(':username', $username);
    $success->bindParam(':password', $password);
    $success->execute();
    $rowSuccess = $success->fetch();
    $user_id = $rowSuccess['userid'];

    $_SESSION['user_id'] = $user_id;
    $_SESSION['loggedIn'] = 1; 

Так, как уничтожить пользовательский сеанс, когда я удаляю его, если он все еще вошел в систему

Ответы [ 3 ]

3 голосов
/ 05 марта 2012

Как только вы позвоните на session_destroy(), ваши $_SESSION['user_id'] и $_SESSION['loggedIn'] прекратят свое существование.Поэтому, когда пользователь обновляет страницу, имейте условие if для проверки идентификатора пользователя и вызывайте

 if(!isset($_SESSION['userId'])) { //if the session variable for this doesn't userId exist

   print "Sorry, no recognized account";   
 } 

РЕДАКТИРОВАТЬ:

Это больше похоже на AJAXрешение, так как вы хотите сделать какое-то действие немедленно, когда пользователь будет удален.В вашем JavaScript настройте ajax-запрос, который вызывает PHP-скрипт, выполняющий это действие удаления.Затем, когда действие будет выполнено, предупредите пользователя и переведите его на другую страницу, используя window.location.Подведем итог

  $.ajax({
 url:"deleteUser.php",
 cache:false,
 success:function(data){
       alert("Sorry you have been deleted. Re-routing to home page");
               window.location="homepage.php";
       }       
});
1 голос
/ 05 марта 2012

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

0 голосов
/ 05 марта 2012

Звучит так: session_destroy() - это то, что вы можете захотеть.

Обратите внимание на это из session_destroy() документов:

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

...