5

ログインページがあり、ログアウトというページへのリンクを作成しました。これには次のコードが含まれています。

logout.php

<?php

session_unset();
session_destroy();
header("Location:");

?>

それでも、ログアウトして戻るボタンを押すと、元に戻ります。前のページを表示する前に再度ログインするように求めるように変更するにはどうすればよいですか?

4

5 に答える 5

1

ユーザーがログインしているかどうかを各ページで確認するには、これを試してください

if (!$_SESSION['logged_in']) { //you would have to make $_SESSION['logged_in'] when they login
header('location: login.php');
}

$_SESSION['logged_in'] が設定されていない場合、ログインページにリダイレクトするだけです。

安全にするために、他のチェックも必要です。

于 2013-04-12T15:30:28.433 に答える
1

すべてのページ (または少なくともすべての PRIVATE/RESERVED ページ) をロードする前に、$_SESSION 変数をチェックして、ユーザーが合法的にログインしているかどうかを判断する必要があります。

このチェックを行わないと、ウェブサイトへの直接リンクがあれば、誰もがあなたのウェブサイトのすべてのページにアクセスできてしまいます。ページの壊れたバージョンが表示される場合がありますが、ログインしていないユーザーにもアクセスが許可されます。

于 2013-04-12T15:23:56.683 に答える
1
<?php
    session_start();
    session_unset();
    session_destroy();
    session_write_close();
    setcookie(session_name(),'',0,'/');
    session_regenerate_id(true);
?>

ソース:マニュアル

于 2013-04-12T15:25:56.497 に答える