私はPHPが初めてで、誰かが私を助けてくれることを願っています.
すべてのページに含まれるヘッダー ファイルで、次のシナリオをカバーしようとしています。
- セッション変数 "
status
" が設定されておらず、かつページ名が "login
" または " "でない場合user
、ログイン ページにリダイレクトします。 - セッション変数 "
status
" が設定されておらず、かつページ名が "user
" であり、かつ変数 "resetToken
" が設定されていない場合、ログイン ページにリダイレクトします。
これまでのところ、ブラウザーからアクセスするときにすべてのページで機能する以下がありますが、次のような電子メールからのリンクを使用すると、リンクに変数 " "が含まれていてもリダイレクトされます。resetToken
リンクの例: https://www.myurl.com/user.php?resetToken=abcde
私のPHP(ヘッダーに含まれています):
$baseURL = "https://www.myurl.com";
$pageURL = basename($_SERVER["REQUEST_URI"]);
$pageName = pathinfo(parse_url($pageURL, PHP_URL_PATH), PATHINFO_FILENAME);
if( (!isset($_SESSION["status"])) && ($pageName != "login") && ($pageName != "user") ){
header("Location: " . $baseURL . "/login.php");
exit;
}
if( (!isset($_SESSION["status"])) && ($pageName == "user") && (!isset($_GET["resetToken"])) ){
header("Location: " . $baseURL . "/login.php");
exit;
}
これに関して 2 つの質問があります。
- メールリンクからページにアクセスするときに $_GET は機能しませんか、それともここで何かを変更する必要がありますか?
- これらのチェックを 2 つ続けて行うのではなく、1 つの IF ステートメントに組み合わせる方法はありますか?
助けてくれてありがとう、マイク