2013-05-16 5 views
0

Я хочу выйти из системы без перезагрузки страницы, просто обновив некоторые div. Это то, что у меня есть, но, очевидно, не работает. Сеанс отключается только после перезагрузки страницы.Как отключить сеанс без перезагрузки страницы

$.ajax({ 
     url: "logout.php", 
     method: "post", 
     data: "account_type=twitter", 
     success: function() { 

     /*****do something***********/ 
    } 
}); 

в logout.php

<?php 
    session_start(); 

    if(isset($_POST['account_type']) && $_POST['account_type'] == "twitter") { 

     unset($_SESSION['twitterId']); 
     unset($_SESSION['twitterName']); 
     unset($_SESSION['twitterPic']); 
     unset($_SESSION['twitterUrl']); 
     unset($_SESSION['access_token']); 
     unset($_SESSION['token_oauth']); 

     header("Location: index.php"); 
    } 
?> 

некоторую помощь будет высоко оценена. Благодаря!

+0

Что вы имеете в виду (сеанс отключается только после перезагрузки страницы.) ?? Я думаю, что сеанс уже отключен, но нет текущей информации, которую вы уже вышли из системы. это правильно?? –

+1

Выход из системы не изменит контент, который уже находится на странице. вам нужно будет перезагрузить страницу, чтобы показать новый контент IE, старый файл будет отображаться, поскольку он не будет автоматически изменяться, поскольку вы вышли из системы с помощью ajax, если, конечно, вы не перезагрузите все эти div с помощью нелегального контента используя ajax. – Anigel

+0

@ Анимил, вы имеете в виду, если я перезагружу div, содержащий условие (если задано задание) динамически, это будет работать? Я попробую! –

ответ

1

Технически нет ничего плохого в том, что вы делаете.

Проблема заключается в том, что при выходе из системы будет изменен контент, который уже был отображен.

Когда вы регистрируете пользователя через вызов ajax, старый файл будет отображаться на странице, пока вы на самом деле не перезагрузите всю страницу, или не перезагрузите содержимое div, которое отображает вход в систему содержание.

Например, если у вас есть поле, в котором указано You are logged in, просто выйдите из системы через ajax, это не изменит этот контент до тех пор, пока вы не перезагрузите этот div с помощью ajax или не перезагрузите всю страницу, чтобы сервер затем сообщил странице, на которой вы не вошли .

Содержимое, которое уже было отправлено пользователю, всегда будет оставаться таким, каким оно есть, если вы специально не измените его с помощью ajax после выхода из системы или перезагрузки всего содержимого на странице.

0
<?php 
    session_start(); 

    if(isset($_POST['account_type']) && $_POST['account_type'] == "twitter") { 

     session_destroy(); 

     header("Location: index.php"); 
    } 
?> 
+0

Несмотря на то, что это приведет к уничтожению сеанса, оно не затрагивает проблему OP, которая заключается в том, что даже после того, как «выходить из системы» зарегистрирован в содержимом, все еще отображается. – Anigel

0

Сеанс быть снята с охраны с помощью вызова AJAX, но вам нужно будет манипулировать дивы соответственно после того, как успех выхода из системы Ajax вызова, как скрыть имя пользователя поместить кнопку входа или удалить любую пользовательскую область ....

Смежные вопросы