ログイン検証は、Web開発における一般的な要件です。ユーザーが表示するためにログインする必要があるページにアクセスすると、通常、ユーザーがログインしているかどうかを判断し、判断結果に基づいて対応する処理を行う必要があります。ユーザーがログインしていない場合は、ログインページにリダイレクトする必要があります。この時点で、PHPのヘッダー関数とISSET()関数の組み合わせは非常に実用的なツールです。
この記事では、Header()関数とISSET()を使用してログインステータスを決定し、リダイレクトの完全なプロセスを実行する方法について詳しく説明します。
Header()関数は、元のHTTPヘッダー情報を送信するために使用されます。この関数を通じて、HTTPステータスコード、コンテンツタイプ、キャッシュ制御、その他の情報を設定し、ページリダイレクトを実行することもできます。
一般的な使用法は次のとおりです。
header("Location: http://www.m66.net/login.php");
exit;
上記のコードは、ブラウザをhttp://www.m66.net/login.phpにリダイレクトします。出口;後続のコードからの干渉を避けるために、リダイレクト後にスクリプトが実行を停止することを確認することです。
ISSET()関数は、変数が設定されており、その値がnullではないかどうかを検出するために使用されます。ユーザーがログインしているかどうか、またはフォームフィールドが送信されたかどうかを判断するためによく使用されます。
if (isset($_SESSION['user_id'])) {
// ユーザーがログインしました
}
PHPでは、ログインステータスは通常、セッションを通じて維持されます。ユーザーがログインすると、 user_idなどのセッション内のユーザーの関連情報を保存します。ユーザーのログインステータスを確認する必要があるページで、 ISSET()を使用して、セッション変数が存在するかどうかを判断できます。存在する場合、ユーザーがログインしていることを意味します。それが存在しない場合、それはユーザーがログインされず、リダイレクトが必要であることを意味します。
まず、ページの上部でセッションを開始してください。 session_start()を使用してセッションを開始できます。この関数は、出力の前に呼び出さなければなりません。
<?php
session_start();
?>
次に、 ISSET()を使用して、ユーザーのログインステータスを決定できます。セッションでuser_idを保存するとします。
<?php
if (!isset($_SESSION['user_id'])) {
// ユーザーはログインしていません,ログインページにリダイレクトします
header("Location: http://www.m66.net/login.php");
exit;
}
?>
上記のコードは、ログインステータスチェックを実装しています。 $ _Session ['user_id']が存在しない場合(つまり、ユーザーがログインしていません)、ログインページのページリダイレクトに対してheader()が実行されます。
既にログインしているユーザーの場合、ターゲットページにアクセスしたり、歓迎情報などを表示したりすることができます。たとえば、次のようになります。
<?php
if (isset($_SESSION['user_id'])) {
echo "いらっしゃいませ,ユーザー " . $_SESSION['user_id'];
}
?>
Header()とIsset()を組み合わせてログインステータスを決定し、それをリダイレクトする方法を示す完全な例を示します。
<?php
session_start(); // セッションを開始します
// 判断ユーザー是否登录
if (!isset($_SESSION['user_id'])) {
// 如果ユーザー没有登录,ログインページにジャンプします
header("Location: http://www.m66.net/login.php");
exit; // リダイレクト後に後続のコードの実行を停止します
}
// ユーザー已经登录,显示いらっしゃいませ信息
echo "いらっしゃいませ您," . $_SESSION['user_id'] . "!";
?>
Header()関数は、出力の前に呼び出す必要があります。HTTPヘッダー情報を変更するためにHeader()が使用されるため、 Header()を呼び出す前に出力(HTMLタグ、スペース、エコー、印刷など)はありません。すでに出力がある場合、PHPはエラーを報告します:「ヘッダー情報を変更できません - すでに送信されているヘッダー」。
出口機能:ヘッダーを呼び出した後( "location:...") 、 exit;他の操作によってリダイレクトが妨げられないように、後続のコードが継続的な実行を継続するのを防ぐためにすぐに使用する必要があります。
セッション管理:セッションデータの正しさを確保するために、各ページはセッションを開始するためにsession_start()を使用する必要があります。ログインステータスを決定する必要がある複数の場所がページにある場合、ログイン判断コードを別のPHPファイルに抽出し、含めることでそれを含めることができます。
この記事では、PHPでHeader()関数とISSET()関数を使用してログインステータスを決定し、ページリダイレクトを実行する方法を紹介します。セッションでログイン情報を保存し、 ISSET()を介して存在するかどうかを判断します。 Header()関数を使用して操作をリダイレクトすることで、ユーザーアクセス権を効果的に制御し、ログインユーザーのみが制限付きコンテンツにアクセスできるようにします。
この方法は、ログイン検証が必要なほとんどのWebアプリケーションシナリオに適しています。この記事があなたに役立つことを願っています。