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");
    }
?>

いくつかの助けをいただければ幸いです。ありがとう!

4

3 に答える 3

1

技術的には、あなたがしていることに何の問題もありません。

問題は、ログアウトすると、すでに表示されているコンテンツが変更されることです。

ajax 呼び出しを介してユーザーをログアウトすると、実際にページ全体を再読み込みするか、ログイン済みコンテンツを表示している div のコンテンツを再読み込みするまで、古いログイン済みコンテンツがページに表示されたままになります。

たとえば、 というボックスがある場合、You are logged inajax を介してログアウトするだけでは、ajax を使用してその div をリロードするか、ページ全体をリロードして、サーバーがログインしていないことをページに通知するまで、そのコンテンツは変更されません。

すでにユーザーに送信されたコンテンツは、ログアウト後に ajax を使用するか、ページ上のすべてのコンテンツをリロードして具体的に変更しない限り、常にそのまま残ります。

于 2013-05-16T11:14:53.660 に答える
0

セッションはajax呼び出しによって設定解除されていますが、ユーザー名を非表示にしてログインボタンを配置するか、ユーザー領域を削除するなど、ログアウトのajax呼び出しが成功した後、それに応じてdivを操作する必要があります....

于 2013-05-16T10:20:53.920 に答える
0
<?php
    session_start();

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

        session_destroy();

        header("Location: index.php");
    }
?>
于 2013-05-16T10:12:24.883 に答える