2017-08-07 21 views
0

アカウントのユーザーログアウト時にセッションが破損しています。ログアウトした後、ログインする前にアクセスしないようにユーザーに制限されているページをブラウズするとアクセスできますが、ログアウトしてブラウザを閉じてからページにアクセスしようとすると、ユーザーがブラウザを閉じていなくてもログアウトしてもページにアクセスできないように、私の問題を解決してください。ここに私のログアウトとセッションを破壊するコードがあります。セッションを破棄する際の問題

 <?php 
    // Initialize the session. 
    // If you are using session_name("something"), don't forget it now! 
     if(isset($_POST['logout'])){ 
     session_start(); 

     // Unset all of the session variables. 
      $_SESSION = array(); 
      $_SESSION["Alogin"] = ""; 

     // If it's desired to kill the session, also delete the session 
      cookie. 
    // Note: This will destroy the session, and not just the session data! 
     if (ini_get("session.use_cookies")) { 
     $params = session_get_cookie_params(); 
     setcookie(session_name(), '', time() - 42000, 
     $params["path"], $params["domain"], 
     $params["secure"], $params["httponly"] 
     ); 
     } 

    // Finally, destroy the session. 
     session_destroy(); 
     } 
    ?> 
+0

である必要があります送信する場合、if文の外にあなたのsession_start();を入れて、print_r ($_POST);

  • チェックユーザーがページにアクセスできるかどうかを確認する例 – Cid

  • +0

    @Cidユーザーが自分のアカウントにログインしたときに、セッション変数AloginをOkに設定し、制限されたページで、その変数が設定されているかどうかを確認してください。 –

    +0

    'session_start()'が最上位にあり、 'unset($ _ SESSION ['Alogin']) ' –

    答えて

    0

    セッションsession_start()はあなたが与えることができるトップ

    <?php 
    // Initialize the session. 
    session_start(); 
    // If you are using session_name("something"), don't forget it now! 
        if(isset($_POST['logout'])){ 
    
    
        //What ever you want 
    
        // Finally, destroy the session. 
    
        unset($_SESSION); 
        session_destroy(); 
    
        //redirect to loginpage 
        header('Location:../login.php'); 
        exit; 
        } 
    ?> 
    
    +0

    それは完璧に働いた。もう1つの疑問があります。セッションが破棄されても変数の値を保持する方法 –

    0
    1. あなたは$_POST['logout']
    関連する問題