簡単なセッション管理スクリプトを作成したいのですが、それについてどう思いますか? 論理的に正しいですか?
https が利用できない場合は、負荷ごとに session_regenerate_id を使用することが解決策になる可能性があります。
if($_SESSION["user"]["logged"] && is_numeric($_SESSION["user"]["id"])){
$id = $_SESSION["user"]["id"];
$sid = file_get_contents($id); // read from db the previous key
if($sid == $_SESSION["user"]["key"]){
echo "<p><a href='?logout'>logout</a></p>";
echo "<p><a href='/login.php'>refresh</a></p>";
session_destroy();
session_start();
session_regenerate_id(true);
$_SESSION["user"]["logged"] = true;
$_SESSION["user"]["id"] = $id;
$_SESSION["user"]["key"] = uniqid();
file_put_contents($id, $_SESSION["user"]["key"]); // write to db the new key
}
else {
// logout
}
}
前もって感謝します!