ログイン用のセッションを作成するだけです。だからここにトリックがあります。インデックスからホームに移動するたびに、ログインセッションが存在するかどうかを確認する必要があります。そうでない場合は、ユーザーにログインを依頼してください。
ユーザーがログインしているかどうかを確認します
<?PHP
session_start();
if (!(isset($_SESSION['login']) && $_SESSION['login'] != '')) {
header ("Location: login.php");
}
?>
ここでも、最初にPHPセッションを開始します。次に来るIFステートメントは非常に複雑です。しかし、私たちは2つのことをテストしています:ログインと呼ばれるユーザーセッションが設定されていますか?そして、このセッションは空白の文字列ですか?
!(isset($_SESSION['login']) && $_SESSION['login'] != '')
最初の部分はこれです:
!(isset($_SESSION['login'])
セッションが設定されているかどうかを確認するには、組み込み関数issetを使用できます。その前にNOT演算子を使用しています。 (NOT演算子は感嘆符です。)つまり、「セッションが設定されていない場合」と言います。セッションは設定されている可能性がありますが、「1」が含まれている可能性があります。また、loginというセッションが空白ではない文字列であるかどうかを確認する必要があります。これらの両方が失敗した場合、ユーザーがログインしていないことを意味するため、login.phpページにリダイレクトできます。
サイト内のすべてのページで、ページの上部に上記のスクリプトがある場合、ユーザーがログインしていない場合はユーザーをリダイレクトします。これにより、非メンバーからページを保護できます。ログインすると、ページを表示できるようになります。
ログアウトlogout.phpのコードを見ると、次のことがわかります。
<?PHP
session_start();
session_destroy();
?>
ユーザーをログアウトするために必要なのはこれだけです。セッションを開始してから、session_destroyコマンドを発行します。必要なのは、サイトのどこからでもこのページへのリンクです。リンクはHTMLとして次のようになります:
<A HREF = logout.php>Log Out</A>
ユーザーがこのリンクをクリックすると、セッションを破棄するコードが記載されたページに移動します。