関数は可能なすべてのページで呼び出され、ユーザーがログインしているかどうかをチェックするメイン関数のようなものであるため、何よりも先に実行されます。ユーザーがログインしているかCookieが設定されているかを確認し、ログインしているかCookieを持っている場合は、セッションを開始して2つのセッションを設定します。
ただし、関数の外部にセッションを出力すると、セッションが設定されていないことが出力されますが、Cookie とセッションが表示されます。
エコーする場合にもう少し説明するには
$_SESSION['user']
$_SESSION['logedin']
出力します
Undefined variable: _SESSION
しかし、私がそうするなら
print_r($_COOKIE);
出力します
Array ( [PHPSESSID] => 1rane5lksksp7s4u8p8fh0h194 [user] => fe8dc8f2a7e88746fd8586d489646958 )
これは、セッションと Cookie の両方が設定されていることを意味します
しかし、セッションをリクエストしたときに未定義の変数が表示され、Webサイトの最初の更新後にユーザーがログアウトされるのはなぜですか。
session_start が関数内にあるためですか、session_start が関数内で呼び出された場合、その関数が else または if ステートメントの基準を関数内で満たす場合にのみ呼び出され、session_start が呼び出されると、ブラウザまたはすべてのページで呼び出されますsession_start を使用してセッションを開始する必要があり、設定されているセッションを使用できます。session_start を関数の外に置くと問題なく動作しますが、ユーザーがログインしていなくてもセッションが開始されるためです。