Web サイト開発の分野では、ユーザー ログイン システムは非常に一般的な要件です。 Web サイトにおけるユーザー ログイン システムの中核となる部分は、ログイン ページ、ユーザー認証、ジャンプ ページです。この記事では、PHP を使用して基本的なログイン ページを実装し、そのページにジャンプしてユーザーのセッション ステータスを表示する方法を紹介します。
この記事では、login.php、authenticate.php、dashboard.php の 3 つの基本ファイルを使用します。
ログイン ページは、ユーザーがシステムにログインするためのエントリ ポイントです。このページをlogin.phpファイルに実装します。
<?php session_start(); if (isset($_SESSION['user_id'])) { header('Location: dashboard.php'); exit(); } ?> <!DOCTYPE html> <html> <head> <title>Login</title> <meta charset="utf-8"> </head> <body> <h1>Login</h1> <form method="post" action="authenticate.php"> <label for="user_name">Username:</label> <input type="text" name="user_name"><br> <label for="password">Password:</label> <input type="password" name="password"><br> <input type="submit" value="Login"> </form> </body> </html>
上記のコードは、単純な HTML ページを示しています。これには、ユーザーがユーザー名とパスワードを入力できるフォームが含まれています。フォームの送信は、authenticate.php ページに送信されます。このページは、ユーザーが入力したデータとデータベースに保存されているデータを比較して、ユーザーが保護されたリソースにアクセスする権限を持っているかどうかを確認します。
このコードでは、session_start() 関数を使用して新しいセッションも開始します。ユーザーがすでにログインしている場合、session_start() 関数はユーザー ID が現在のセッションに存在するかどうかを確認し、存在する場合は、dashboard.php ページに直接リダイレクトします。
authenticate.php ファイルは、ユーザーの認証プロセスを担当します。基本的に、データベースに保存されているユーザーの資格情報と、ユーザーがログイン ページで提供した資格情報が比較されます。一致する場合、新しいセッションが作成され、ユーザー ID が $_SESSION['user_id'] に保存されます。その後、dashboard.php ページにリダイレクトされます。
この例では、ユーザー名とパスワードが users という名前のデータベース テーブルにすでに格納されていると仮定します。
<?php session_start(); if (isset($_SESSION['user_id'])) { header('Location: dashboard.php'); exit(); } if (empty($_POST['user_name']) || empty($_POST['password'])) { header('Location: login.php'); exit(); } $user_name = $_POST['user_name']; $password = $_POST['password']; $db = new PDO('mysql:host=localhost;dbname=mydatabase;charset=utf8mb4', 'username', 'password'); $stmt = $db->prepare("SELECT id FROM users WHERE user_name=:user_name AND password=:password"); $stmt->execute(array(':user_name' => $user_name, ':password' => $password)); $user = $stmt->fetch(); if (!$user) { header('Location: login.php'); exit(); } $_SESSION['user_id'] = $user['id']; header('Location: dashboard.php');
上記のコードの実行フローは次のとおりです:
まず、$_SESSION['user_id'] の値を確認します。存在する場合、ユーザーがログインしていることを意味します。ログインし、再度ログインしようとしています。この場合、dashboard.php ページにリダイレクトします。
次に、ユーザーがログイン フォームにユーザー名とパスワードを入力したかどうかを確認します。そうでない場合、ログインプロセスは無効とみなされます。この場合、login.php ページにリダイレクトします。
次に、ユーザーが提供したユーザー名とパスワードをデータベースで検索します。 PDO PHP 拡張機能を使用して MySQL データベースに接続します。指定されたユーザー名とパスワードについて、対応する行が users テーブルに存在するかどうかを確認します。存在する場合、ユーザーは認証されます。
最後に、新しい $_SESSION['user_id'] 変数を作成します。この変数はユーザーの ID を保存し、dashboard.php ページにリダイレクトします。
dashboard.php ファイルには、ユーザーのセッション ステータスが表示されます。ユーザーが認証されている場合、dashboard.php ページは $_SESSION['user_id'] 変数を読み取り、ウェルカム メッセージを表示します。
<?php session_start(); if (!isset($_SESSION['user_id'])) { header('Location: login.php'); exit(); } ?> <!DOCTYPE html> <html> <head> <title>Dashboard</title> <meta charset="utf-8"> </head> <body> <h1>Dashboard</h1> <p>Welcome!</p> </body> </html>
上記のコードの実行フローは次のとおりです:
まず、$_SESSION['user_id'] 変数の値を確認します。変数が存在しない場合は、それを意味します。ユーザーが認証されていないこと。この場合、login.php ページにリダイレクトします。
次に、ユーザーが認証され、保護されたリソースにアクセスできることを示すウェルカム メッセージが表示されます。
この記事では、PHP を使用して基本的なログイン システムを実装する方法を学習しました。このシステムは、基本的な HTML および PHP 構文に加え、MySQL および PDO 拡張機能を使用します。この例を通じて、HTML フォームの作成、MySQL データベース内のデータの読み取りと書き込み、新しいセッションの作成、およびセッション内の変数の検査方法を学習しました。これらのスキルはすべて、より複雑な Web アプリケーションを構築するために必要です。
以上がPHPを使ってログインページのジャンプページを作る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。