2016-10-05 8 views
1

こんにちは私はサインアウトボタンを押してログアウトしてログインページにリダイレクトするとセッションを破棄しようとしています。しかしwhen click back in browser that page is loading with loign menu on top.どうすればセッションを完全に破棄できますか?セッションがavailbaleにログインページにリダイレクトされない場合

そして、セッションがログインページにリダイレクトできないかのように私はeverypageでコードを書きました。ここで

はsession_destroyのための私のログアウトコードです:ここ

elseif(isset($_GET['type']) && $_GET['type']== "logout") 
{ 
    if (!isset($_SESSION['id'])) { 
     header('location:index.php'); 
     } else { 
     session_destroy(); 
     $_SESSION = array(); 
     header('location:index.php'); 
    } 
} 

は私がすべてのページに記載しているどのようなコードです:

session_start(); 
include_once('includes/config.php'); 
if(!isset($_SESSION['id'])) { 
    header('location:login.php'); 
} 

だから私の質問は、プレスが戻って、それはいけない場合はcompletlyログアウトですロードし、ログインページにリダイレクトする必要があります。このように

+0

ヘッダーを追加しましたか? 'Expires、Last-Modified、Cache-Control'のようなものですか? – ravisachaniya

答えて

2
<?php 
session_start(); 
if($_SESSION['id']){ 
unset($_SESSION['id']); // destroys the specified session. 

} 

header('Location:index.php'); //redirect to preferred page after unset the session 

?> 
0

してみてください。この機能により、

session_start(); 

unset($_SESSION["id"]); 

session_destroy(); 
header('location:index'); 
+0

うまくいかない..... @ dev –

+0

@Baheerbagh ok。それは私の中で働いています。 –

1
session_destroy() 

ブラウザですべてのセッションを破壊することができます。あなたは、PHPで動作する場合は、書く必要があります。これはあなたのバッファもフラッシュし、新たなスタートセッションによって

ob_start(); 
session_start(); 

を。試してみてください。

+0

仲間はいません..... @ kumar –

+0

@Baheerbagh ..その大丈夫です。私は例を挙げました。しかし、重要なことは、ob_start()の使用です。 –

1

signout.phpのようなページを作成し、このページにサインアウトボタンのリンクを設定します。

<a href="signout.php">Signout</a> 

signout.phpページのためのコードの下に追加します。

session_start(); #Start new or resume existing session 
#session_unset($_SESSION['key']); #Free specific session variable if you want, OR 
session_destroy(); #Destroys all data registered to a session 
header('location:login.php'); #Redirect to login page after logout 

これはうまくいくはずです。

関連する問題