【やりたいこと】
##PHP言語で、トップページから「新規会員登録ページ」と「ログインページ」の、どちらか選んだ方に遷移する仕組みを作りたいです。
今PHP言語を使い、ログインの仕組みを作成中です。
ログイン済みかどうかはセッションで判断しています。
ログインしたときの時間を、タイムスタンプで$_SESSION['login_date']という変数に格納し
$_SESSION['login_date']を持っていればログイン済み
$_SESSION['login_date']がなければ未ログイン
という判定方法にしています。
悩んでいる部分は
未ログインのとき、
トップページから「新規会員登録ページ」と「ログインページ」のどちらかを選んだら、
その選んだページに遷移する仕組みを作る方法です。
php
1if (!empty($_SESSION['login_date'])) { 2 debug('ログイン済ユーザーです'); 3 4// ログインしているユーザー向けの処理 5 6}else{ 7 8 // ログインしていないユーザー向けの処理 9 10 debug('ログイン未ユーザーです'); 11 // signup.phpのページ以外からは、トップページへ遷移する 12 if (basename($_SERVER['PHP_SELF']) !== 'signup.php') { 13 debug('$_SERVERの中身:'.print_r($_SERVER, true)); 14 debug('トップページに遷移します'); 15 // topに遷移させる 16 header("Location:top.php"); 17 } 18 }
上のコードの中の
「ログインしていないユーザー向けの処理」
から手詰まりです。
「signup.phpのページ以外からは、トップページへ遷移する」仕組みは書いたのですが
これを「signup.phpのページとlogin.phpページ以外からは、トップページへ遷移する」仕組みにしたいのです。
ただ単純にページを遷移させる仕組みにすると、無限ループしてしまったので上の書き方にしてあります。
【やってみたこと】
以下のコードは
// ログインしていないユーザー向けの処理
以下の内容になります。
php
1// ログインしていない場合($_SESSION['login_date']がない場合) 2 debug('ログイン未ユーザーです'); 3 // signup.phpのページ以外からは、トップページへ遷移する 4 if (basename($_SERVER['PHP_SELF']) !== ('signup.php' or 'logion.php')) { 5 debug('$_SERVERの中身:'.print_r($_SERVER, true)); 6 debug('トップページに遷移します'); 7 // topに遷移させる 8 header("Location:top.php"); 9 } 10 11 12=====コメント====== 13この書き方だとどちらにも遷移しませんでした。
php
1// ログインしていない場合($_SESSION['login_date']がない場合) 2 debug('ログイン未ユーザーです'); 3 // signup.phpのページ以外からは、トップページへ遷移する 4 if (basename($_SERVER['PHP_SELF']) !== 'signup.php') { 5 debug('$_SERVERの中身:'.print_r($_SERVER, true)); 6 debug('トップページに遷移します'); 7 // topに遷移させる 8 header("Location:top.php"); 9 }else{ 10 (basename($_SERVER['PHP_SELF']) !== 'login.php') { 11 debug('$_SERVERの中身:'.print_r($_SERVER, true)); 12 debug('トップページに遷移します'); 13 // topに遷移させる 14 header("Location:top.php"); 15 } 16 17 18=====コメント====== 19この書き方もどちらにも遷移しませんでした。
どのようにコードを書けば
「新規会員登録ページ」と「ログインページ」の、どちらか選んだ方に遷移する仕組みを作ることができるでしょうか?
どうかお力を貸してください。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/26 12:02