LoginSignup
11
13

More than 5 years have passed since last update.

ログインしていない状態で訪れたURLをログイン後も継続する

Last updated at Posted at 2014-08-20

ログインしていない状態である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);
}
11
13
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13