私はこれについて頭を悩ませてきました。私のコードは、これが機能する他のプロジェクトと実質的に同じです。これが私がそれを行う方法です:
session_start();
set_up_session($username);
redirect_to('index.php');
そして2つの機能:
function redirect_to($location=null) {
if($location!=null) {
header("Location: {$location}");
exit;
}
}
function set_up_session($username) {
session_start();
$_SESSION['user_id']=$id;
$_SESSION['logged_in']=true;
$_SESSION['username']=$username;
}
リダイレクトをコメントアウトして変数$_SESSION
のいずれかをエコーすると、変数は正しく読み取られます。ただし、リダイレクト後、セッションは終了します。
それが次のページです。
<?php if (!isset($_SESSION['logged_in'])) { ?>
// do stuff <-- this is what gets shown showing session is no longer active
<?php } else { ?>
<p>Hi, <?php echo $_SESSION['username']; ?></p>
<?php } ?>