ログインしていない状態であるURLをクリックする
↓
ログインしていないのでログイン画面に行く
↓
ログイン後、クリックしたURLではないページ(ログイン後のトップページ的なページ)に遷移してしまう
↓
どのページに行きたかったんだっけ?シクシク
という状況を改善するため、ログインした後にクリックしたURLを継続して見られるようにするための方法を調べたので書いておきます。
ログインしていない状態で訪れたURLをログイン後も継続する
やりたいこと
あるURLに飛ぶ
↓
ログインしている → あるURLに遷移
ログインしていない
↓
ログイン画面に遷移してログイン
↓
あるURLに遷移
仕組み
あるURLに飛ぶ
↓
(logincheck.php)
ログインしている → あるURLに遷移
ログインしていない
↓
ログイン画面に遷移するが、その際
あるURLのパスを取得してログイン画面のURLにパラメータとして付けておく
↓
(login.php)
ログイン画面でパラメータのパスがついていたら
ログイン後のURLにパラメータのパスを付ける
コード
logincheck.php
$_SESSION["requesturl"] = htmlspecialchars($_SERVER["REQUEST_URI"]);
$loginngurl .= "?url=".$_SESSION["requesturl"];
ログインチェックOK → そのまま
ログインチェックNG → header("Location: ".$loginngurl);
login.php
if ($_GET['url']) {
$requesturl = $_GET['url'];
}
ログインできたら↓
if ($requesturl) {
$loginokurl = $requesturl;
header("Location: ".$loginokurl);
}