ログインページがあり、ログアウトというページへのリンクを作成しました。これには次のコードが含まれています。
logout.php
<?php
session_unset();
session_destroy();
header("Location:");
?>
それでも、ログアウトして戻るボタンを押すと、元に戻ります。前のページを表示する前に再度ログインするように求めるように変更するにはどうすればよいですか?
ログインページがあり、ログアウトというページへのリンクを作成しました。これには次のコードが含まれています。
logout.php
<?php
session_unset();
session_destroy();
header("Location:");
?>
それでも、ログアウトして戻るボタンを押すと、元に戻ります。前のページを表示する前に再度ログインするように求めるように変更するにはどうすればよいですか?
ユーザーがログインしているかどうかを各ページで確認するには、これを試してください
if (!$_SESSION['logged_in']) { //you would have to make $_SESSION['logged_in'] when they login
header('location: login.php');
}
$_SESSION['logged_in'] が設定されていない場合、ログインページにリダイレクトするだけです。
安全にするために、他のチェックも必要です。
すべてのページ (または少なくともすべての PRIVATE/RESERVED ページ) をロードする前に、$_SESSION 変数をチェックして、ユーザーが合法的にログインしているかどうかを判断する必要があります。
このチェックを行わないと、ウェブサイトへの直接リンクがあれば、誰もがあなたのウェブサイトのすべてのページにアクセスできてしまいます。ページの壊れたバージョンが表示される場合がありますが、ログインしていないユーザーにもアクセスが許可されます。
<?php
session_start();
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);
?>
ソース:マニュアル