index.php をロードしても、セッションが開始されません。私が作成したログイン クラスを使用するログイン フォームがあり、ユーザーが正常にログインすると、index.php に戻り、セッションが開始されます。
ログインが成功した場合にのみインデックス ページでセッションが開始されるようにするには、どうすればよいですか?
セッションと認証は同義ではありません。ログに記録せずにセッションを開始できます。セッション固有の変数を設定し、それをチェックして、ユーザーがログインしているかどうかを判断できます。
ユーザーがログインしているかどうかに関係なく、ページの上部でセッションを開始するだけです。
session_start() について心配する必要はありません。セッションは設定されず、セッションを開始するだけです。したがって、まだファイルの先頭に session_start() を置くことができます
ログインSQLクエリを実行し、ログインが成功した場合に条件を設定して成功した結果を確認し、セッションを設定すると、セッションの設定はかなり単純になります。
if(sussessful_login) {
$_SESSION['yoursessionname'] = 'value';
}
キャッチ 22 の状況に陥っています。ログインの成功はセッションに保存されるため、セッションを開始してユーザーがログインしているかどうかを確認する必要があります。
あなたはこのようなものがもっと欲しいでしょう
<?php
session_start(); // ALWAYS start a session, regardless
if(!isset($_SESSION['logged_in'])) {
... not login sentinel set, redirect to login page ...
}
... proceed onwards