ホームページ >バックエンド開発 >PHPチュートリアル >PHP のログイン ページ
魅力的なウェブサイトが顧客にアカウント作成を提案していないことはほとんどありません。そのためには、新しいユーザーが自分自身を登録し、後で自分のアカウントを使用してログインして Web サイトと対話するための機能が必要です。 PHP は、機能的なログイン ページを迅速にセットアップするのに十分なユーティリティを公開しており、必要に応じて後から拡張することもできます。認証情報を要求する基本的なログイン フォームを設定した後、同じ PHP スクリプトを使用して認証情報を処理および検証し、ログインに成功すると適切なページにリダイレクトできます。また、ログインプロセスを完了したユーザーを追跡するために、Cookie とセッションを作成および保存するためのオプションも提供します。
広告 このカテゴリーの人気コース PHP 開発者 - 専門分野 | 8コースシリーズ | 3 つの模擬テスト無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
PHP は、スケーラブルなステートレスなサーバーサイド スクリプト言語です。フォームの送信時に使用されるメソッドが GET か POST かに応じて、配列 $_GET または $_POST に格納することでフォーム データをキャプチャできます。一般に、セキュリティ上の理由から、post メソッドが推奨されます。送信時に、これらの配列に入力フィールド名によってインデックスを付けて、特定の値を取得できます。
ログイン フォームの場合、資格情報はこれらの配列に渡されて保存されますが、多くの場合、これは単なるユーザー名とパスワードのセットです。要件に基づいて、ユーザー名とパスワードの組み合わせを PHP コード自体で直接検証するか、有効なユーザー名とパスワードの組み合わせをデータベースに保存して検索できるようにすることができます。
次の HTML 行を含むページ Login.php を作成しましょう:
コード:
<html> <head>A sample login page</head> <body> <h2>Enter Login Information:</h2><br> <form action="" method="post"> <label>Username : </label><input type="text" name="username" /><br/> <label>Password : </label><input type="password" name="pwd" /><br/> <input type="submit" value="Login" /> </form> </body> </html>
出力:
これらの行は非常に単純なフォームを作成し、ユーザーはユーザー名とパスワードの 2 つのフィールドを入力する必要があります。これは送信ボタンである 3 番目の入力を提供し、フォーム データ (ユーザー名とパスワード) を form タグの action 属性で指定された場所に送信します。上では空なので、フォーム情報を同じ PHP ページに渡します。
上記のページは静的な HTML コードであり、実際にユーザーを検証したり内部 Web ページにログインしたりすることはありません。そのためには、post メソッドのため、$_POST に保存されているフィールド username と pwd に渡された値を処理する必要があります。
したがって、値が存在するかどうかは、以下を使用して確認できます。
コード:
<?php $error = ""; if(isset($_POST['username']) && isset($_POST['pwd'])){ // check for validity } ?>
両方の入力が実際に存在することを確認すると、その値を検証し、ユーザーを適切なウェルカム ページにリダイレクトできます。
これは、上記の if ステートメント ブロック内に次の簡単なコードを挿入することで実現できます。
コード:
$username = $_POST['username']; $password = $_POST['pwd']; if($username == "admin" && $password == "l0G3In"){ header('location: Home.php'); } else { $error = "Invalid username or password!"; }
上記の行では、ユーザーが有効な認証情報のセットを送信すると、home.php へのアクセスが許可されます。そうでない場合は、ユーザーに表示できるエラー メッセージが保存されます。
ユーザーがリクエストのたびに繰り返しログインすることは望ましくありません。したがって、リクエストしているページに関係なく、ログインしたユーザーを追跡する必要があります。 PHP でこれを実現する 1 つの方法は、セッションを使用することです。
簡単に言うと、セッションはサーバー側の小さな情報であり、ページがリクエストされるとクライアントのために一時的に保存されます。 PHP では、これはスクリプトの最初の行として関数 session_start() を呼び出すことによって実現されます。次回ページにアクセスしたときから、 session_start() は新しいセッションを作成せず、以前に開始されたセッションの情報を取得し、特別な配列 $_SESSION に格納します。
セッションがアクティブな間にページ間で渡される値は、通常の配列と同様の方法で設定でき、isset() 関数を使用して配列内で特定の値が使用可能かどうかを確認できます。
これまで説明した内容をすべて組み合わせると、コードは次のようになります:
コード:
A sample login pageEnter Login Information:
出力:
ログインが必要な他のページでは、セッション キー ログインが設定されていることを確認するだけで済みます。そうでない場合、ユーザーはログイン ページにリダイレクトされます。それ以外の場合、彼は秘密の内部コンテンツにアクセスできます。
デモ用に作成しましょう:
コード:
<?php session_start(); if(!isset($_SESSION["login"]) || $_SESSION["login"]!=True){ header('location: Login.php'); } ?> <html> <head>Welcome to User's Home Page</head> <body> <h2>Wishing you a good day!!</h2><br> </body> </html>
出力:
上記のコードは、まず session_start() を呼び出してセッションの詳細を取得します。次に、ログイン プロセスを完了したユーザーのセッションがまだアクティブであることを検証します。そうでない場合、ユーザーは Login.php ページに送られます。ユーザーが正常にログインした場合、ユーザーは残りのコンテンツを利用できるようになります。
PHP でログイン ページを作成するのは非常に簡単です。ここでは資格情報をスクリプトに直接保存していますが、理想的には (そして最も一般的には) 何らかの形式のデータベースまたはキー マネージャーに保存されます。また、ここではブラウザ側に保存されるセッションを使用しましたが、ブラウザ (クライアント) 側に保存される信頼性の低い Cookie を使用することもできます。
以上がPHP のログイン ページの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。