3

次のコードを使用して、PHP Web サイトからログアウトしようとしています。

<?php
session_start();
if(isset($_GET['logout']))
{
   $_SESSION=array();
   if($_COOKIE[session_name()])

   {
    setcookie(session_name(), '', time()-42000, '/');
   }
session_destroy();
header('Location: login.php');
}

?>

ページはログインページにリダイレクトされますが、ブラウザの戻るボタンをクリックすると前のページが表示されます。さまざまな投稿で、ユーザーがphp Webサイトを完全にログアウトできるソリューションが見つからないため、これを解決できる包括的なソリューションを提案してください。(可能であれば、javascript を使用せずに)。ログアウト後に戻るボタンを押してもログインページ自体に行きたいです。

4

4 に答える 4

2
session_start(); 
session_unset(); 
session_destroy(); 
header ('location:login.php?message=logout');
于 2013-06-27T20:59:08.090 に答える
0

これをコードに追加してみてください。キャッシュを防ぐのに役立つはずです。

header('Cache-Control: no-cache, must-revalidate');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
于 2013-06-27T18:06:25.493 に答える
0

「ページ」の先頭に、セッション資格情報をチェックするステートメントを追加します。存在しない場合はユーザーをログイン ページにリダイレクトし、存在しない場合はページを読み込みます。

実際に条件付きブロックを作成するには、実際のphpが必要ですが、次のようなものがあります...

セッションが False の場合

ブラウザをログインページにリダイレクトするスクリプト

そうしないと

ページを読み込む

終了条件

于 2013-06-27T20:14:56.483 に答える
0

コードで AJAX を使用してログアウトする場合、使用すると、使用しsession_start()ていたセッションを続行する代わりに、まったく新しいセッションが開始されます。

AJAX を使用する場合は、ユーザーのログイン時に次の操作を行います。

#start a new session
session_start();
#save the session id into a cookie
setcookie('SESSID', session_id(), 0, '/');

セッションが保存されたので、ログアウトするには、次のコードを試してください。

if(isset($_COOKIE['SESSID']))
{
    #retrieve the previous session id
    session_id($_COOKIE['SESSID']);
    session_start();

    #destroy the session
    session_destroy();
    setcookie('SESSID', NULL, time() - 3600, '/');
}
于 2013-06-27T20:24:34.427 に答える