基本的に、ユーザーがログインしているかどうかを確認しています。ログインしていない場合は、header('location: login.php') を使用してログイン ページにリダイレクトします。
ブラウザが実際にリダイレクトしているのか、それともサーバーなのか混乱していますか? ブラウザの場合、ユーザーはブラウザのリダイレクトを防止してページのコンテンツを表示できますか?
基本的に、ユーザーがログインしているかどうかを確認しています。ログインしていない場合は、header('location: login.php') を使用してログイン ページにリダイレクトします。
ブラウザが実際にリダイレクトしているのか、それともサーバーなのか混乱していますか? ブラウザの場合、ユーザーはブラウザのリダイレクトを防止してページのコンテンツを表示できますか?
はい、リダイレクトしているのはブラウザではなく、何かがブラウザに送信される前の php です。
exit()
呼び出しの後に使用し、header
呼び出しの前にブラウザーに何も出力されないことを確認してくださいheader
。
サーバーはリダイレクト中です。クライアント ブラウザは、ヘッダーの変更を通じてサーバーが送信するページに誘導されます。ユーザーはページからのリダイレクトを防ぐことはできませんが、リダイレクト コード header('location: login.php'); のその行の後のコンテンツを見ることができます。
// print to error log before and after header redirect to show code is executed after the redirect
error_log("before redirect");
header('location: login.php');
// this will get get executed. To prevent, exit() script immediately after the header redirect
error_log("after redirect");
「十分」とは、ネットワーク トラフィックを傍受したとしても、認証されていない人に情報が公開されないことを意味する場合、認証されていない要求に対する応答の本文で情報を送信してはなりません。 .
次のようなもので十分です。
header('location: login.php');
exit; // make sure not to echo anything in the body
これにより、ブラウザーは HTTP ヘッダーを受信し、login.php へのまったく新しい要求を開始しますが、応答で機密情報が明らかにされることはありません。
まあ、それを単純に保ち、特定の変数をチェックし、それに基づいて、リダイレクト/コンテンツの表示を決定することは問題ありません...このようなものがうまくいきます..
if(your condition){
header(Location: login.php)
exit() or die() ;
}else{
show contents.....}