別のページにアクセスするためにログインする必要があるサイトを作成しましたが、特別なことは何もありません. ユーザーがログインしたままにするために、すべてのページの上にセッションを設定しています。
私の問題は、各ページで異なるセッション変数を設定する必要がないことです。それらを設定するために呼び出すことができる1つの関数が必要です。さらに、各ページにこれらすべての変数が必要なわけではないので、関数がオプションのパラメーター (電子メールや、すべてのページで使用されないプロフィール写真など) を受け入れるようにしたいと考えています。
各ページの上でこれを呼び出します。
<?php
require_once 'session.php';
confirm_logged_in();
$username = $_SESSION['username'];
$email = $_SESSION['email'];
$picture = $_SESSION['picture'];
$group = $_SESSION['group'];
?>
このようにして、必要な変数のみを設定できるようにしたいと思います。
<?php
require_once 'session.php';
confirm_logged_in();
set_variables($username, $email);
?>
「session.php」ファイルは次のようになります。
<?php
session_start();
function logged_in(){
return isset($_SESSION['username']);
}
function confirm_logged_in(){
if(!logged_in()){
header('location: start.php');
}
}
?>
いくつか試してみましたが、膨大な量のエラーが発生しました。誰かがすでにこれを行っているか、これを行うスクリプトを見つけましたか? それは可能ですか?