phpを使ってログイン・登録機能を実装する方法を詳しく解説
PHP はサーバー側のスクリプト言語としてネットワーク開発で広く使用されており、ログインおよび登録機能が一般的な要件となります。この記事では、PHPを使用して簡単なログイン・登録機能を実装する方法を紹介します。
1. データベースの作成
まず、ユーザー情報を保存するテーブルを MySQL データベースに作成する必要があります。次の SQL ステートメントを使用して、データベースに「user」という名前のテーブルを作成できます。
CREATE TABLE user ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(30) NOT NULL, email VARCHAR(50) NOT NULL, password VARCHAR(30) NOT NULL )
テーブルには、id、ユーザー名、電子メール、パスワードの 4 つのフィールドが含まれています。このうち、idは自己増加する整数型の主キー、usernameはユーザー名、emailはユーザーのメールアドレス、passwordはユーザーのパスワードです。パスワードフィールドは暗号化アルゴリズムを使用して暗号化する必要があることに注意してください。
2. ログイン ページの作成
次に、ログイン ページを作成する必要があります。このページは、HTML、CSS、JavaScript を使用して実装できます。基本的な例を次に示します。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>登录</title> </head> <body> <h1>登录</h1> <form action="login.php" method="POST"> <input type="text" name="username" placeholder="用户名"><br> <input type="password" name="password" placeholder="密码"><br> <button type="submit" name="submit">登录</button> </form> </body> </html>
この例では、ユーザー名とパスワードを入力するための 2 つの入力ボックスと、送信ボタンを備えたフォームを作成します。ユーザーが送信ボタンをクリックすると、フォームは POST リクエストを login.php ページに送信します。
3. ログインを確認するための PHP スクリプトを作成する
次に、ユーザーのログイン情報を確認するために、login.php ファイルを作成する必要があります。以下は基本的な例です。
<?php session_start(); if (isset($_POST['username']) && isset($_POST['password']) && !empty($_POST['username']) && !empty($_POST['password'])) { $username = $_POST['username']; $password = md5($_POST['password']); // 加密密码 $conn = mysqli_connect('localhost', 'root', '123456', 'test'); if (!$conn) { die('Could not connect: ' . mysqli_connect_error()); } $sql = "SELECT * from user WHERE username='$username' AND password='$password'"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) == 1) { $row = mysqli_fetch_assoc($result); $_SESSION['username'] = $row['username']; header('Location: index.php'); // 登录成功后跳转到首页 } else { echo '用户名或密码错误'; } } else { echo '请输入用户名和密码'; }
この例では、まず POST リクエストが送信されたかどうかを確認し、次に送信されたユーザー名とパスワードを取得します。次に、md5() 関数を使用してパスワードを暗号化し、プレーン テキストが盗まれるのを防ぎます。次に、データベースに接続し、SELECT ステートメントを使用してユーザー情報をクエリします。クエリ結果が 1 の場合、ユーザー名とパスワードの検証が成功し、ユーザー名がセッションに保存され、index.php ページにリダイレクトされたことを意味します。そうしないと、「ユーザー名またはパスワードが間違っています」というエラー メッセージが表示されます。
4. 登録ページの作成
次に、ログイン ページと同様の登録ページを作成する必要があります。基本的な例を次に示します。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>注册</title> </head> <body> <h1>注册</h1> <form action="register.php" method="POST"> <input type="text" name="username" placeholder="用户名"><br> <input type="email" name="email" placeholder="电子邮件"><br> <input type="password" name="password" placeholder="密码"><br> <button type="submit" name="submit">注册</button> </form> </body> </html>
この例では、ユーザー名、電子メール、パスワードの 3 つの入力ボックスと送信ボタンを備えたフォームを作成します。ユーザーが送信ボタンをクリックすると、フォームは register.php ページに POST リクエストを送信します。
5. 登録を確認するための PHP スクリプトを作成する
次に、ユーザー登録情報を確認するために register.php ファイルを作成する必要があります。以下は基本的な例です。
<?php session_start(); if (isset($_POST['username']) && isset($_POST['email']) && isset($_POST['password']) && !empty($_POST['username']) && !empty($_POST['email']) && !empty($_POST['password'])) { $username = $_POST['username']; $email = $_POST['email']; $password = md5($_POST['password']); // 加密密码 $conn = mysqli_connect('localhost', 'root', '123456', 'test'); if (!$conn) { die('Could not connect: ' . mysqli_connect_error()); } $sql = "SELECT * from user WHERE username='$username' OR email='$email'"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) == 0) { $sql = "INSERT INTO user (username, email, password) VALUES ('$username', '$email', '$password')"; if (mysqli_query($conn, $sql)) { $_SESSION['username'] = $username; header('Location: index.php'); // 注册成功后跳转到首页 } else { echo '注册失败'; } } else { echo '用户名或电子邮件已被注册'; } } else { echo '请输入完整的注册信息'; }
この例では、まず POST リクエストが送信されたかどうかを確認し、次に送信されたユーザー名、電子メール、およびパスワードを取得します。次に、md5() 関数を使用してパスワードを暗号化します。次にデータベースに接続し、SELECT ステートメントを使用して、同じユーザー名または電子メールを持つユーザーがすでに存在するかどうかをクエリします。クエリ結果が 0 の場合は、登録してユーザー情報をデータベースに挿入し、ユーザー名をセッションに保存して、index.php ページにリダイレクトできることを意味します。そうしないと、「ユーザー名またはメールアドレスがすでに登録されています」というエラー メッセージが表示されます。
6. 結論
これまで、PHP を使用してログインおよび登録機能を実装する方法を学習しました。なお、今回の記事は簡単な例であり、実際の運用ではSQLインジェクションやXSS攻撃の防止など一連のセキュリティ対策が必要となります。この記事があなたのお役に立てば幸いです。
以上がphpを使ってログイン・登録機能を実装する方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8のJITコンピレーションは、頻繁に実行されるコードをマシンコードにコンパイルし、重い計算でアプリケーションに利益をもたらし、実行時間を短縮することにより、パフォーマンスを向上させます。

この記事では、PHPの対称的および非対称暗号化について説明し、適合性、パフォーマンス、セキュリティの違いを比較しています。対称暗号化はより速く、バルクデータに適していますが、非対称は安全なキー交換に使用されます。

この記事では、不正アクセスを防ぎ、ベストプラクティスの詳細、セキュリティ強化ツールの推奨を防ぐために、PHPで堅牢な認証と承認の実装について説明します。

この記事では、CSRFトークン、同じサイトCookie、適切なセッション管理など、PHPでのCSRF攻撃を防ぐための戦略について説明します。

この記事では、mysqlデータベースインタラクションのphpでmysqli_query()およびmysqli_fetch_assoc()関数について説明します。それは彼らの役割、違いを説明し、それらの使用の実用的な例を提供します。主な議論は、USINの利点に焦点を当てています

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

記事では、PHPを使用してデータベースからデータを取得し、手順、セキュリティ対策、最適化手法、およびソリューションを使用した一般的なエラーをカバーしています。

PHPの準備されたステートメントは、SQLインジェクションを防止し、コンピレーションと再利用を通じてクエリパフォーマンスを改善することにより、データベースのセキュリティと効率を強化します。
