ホームページ >バックエンド開発 >PHPの問題 >php mysqlでユーザー名検証を実装する方法

php mysqlでユーザー名検証を実装する方法

PHPz
PHPzオリジナル
2023-04-19 11:36:17797ブラウズ

Web サイト開発のプロセスでは、ユーザー ログイン システムは非常に一般的な機能です。重要な手順の 1 つは、ユーザーが入力したユーザー名とパスワードが一致するかどうかを検証し、システムに入る前にユーザーが正しい情報を入力していることを確認することです。

この記事では、PHPとMySQLを使ってユーザー名検証機能を実装する方法を紹介します。

  1. データベースとユーザー テーブルの作成

まず、MySQL にデータベースを作成し、その中にユーザー テーブルを作成する必要があります。このユーザー テーブルには、次のフィールドを含める必要があります:

  • id: ユーザー ID、自己増加。
  • username: ユーザー名、一意。
  • password: ユーザーのパスワード。暗号化後に保存されます。
  • created_at: 作成時刻、ユーザー登録時刻を記録します。

次の SQL ステートメントを使用して、このユーザー テーブルを作成できます:

CREATE DATABASE test;
USE test;
CREATE TABLE users (
id INT ( 11) NOT NULL AUTO_INCREMENT,
ユーザー名 VARCHAR(255) NOT NULL UNIQUE,
パスワード VARCHAR(255) NOT NULL,
created_at DATETIME NOT NULL,
主キー (id)
) ;

  1. PHP コードの作成

次に、MySQL データベースに接続し、ユーザー名とパスワードを確認するための PHP コードを作成する必要があります。以下は簡単な PHP コードの例です:

//MySQL データベース接続情報
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "test";

// MySQL 接続を作成します
$conn = new mysqli($servername, $username, $password, $dbname ) ;
if ($conn->connect_error) {
die("接続に失敗しました: " . $conn->connect_error);
}

// POST パラメーターを取得しますユーザー名とパスワード
$username = $_POST["username"];
$password = $_POST["password"];

// ユーザー名とパスワードを確認してください
$sql = " SELECT * FROM users WHERE username='{$username}'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
if (password_verify($password, $row["password"])) {

echo "登录成功";

} else {

echo "密码不正确";

}
} else {
echo "ユーザー名が存在しません";
}

$conn->close();
?>

上記の PHP コードの主なプロセスには次のものが含まれます。

  1. MySQL データに接続して操作するための MySQL データベース接続を確立します。これには、$servername、$username、$password、$dbname の 4 つの接続パラメータが含まれており、これらは MySQL 接続のサーバー アドレス、ユーザー名、パスワード、データベース名を指定するために使用されます。
  2. ユーザー名やパスワードなど、ユーザーによって送信された POST パラメーターを取得します。
  3. SQL SELECT ステートメントを使用して、ユーザー テーブルにユーザー名と一致するレコードがあるかどうかをクエリします。一致が成功した場合は、password_verify 関数を使用して、ユーザーが入力したパスワードがデータベースに保存されているパスワードと一致するかどうかを確認します。ここで注意する必要があるのは、セキュリティを向上させるために、ユーザー登録時にユーザーのパスワードをデータベースに保存する前に、password_hash 関数を使用して暗号化する必要があるということです。
  4. 検証に成功すると、ユーザーに「ログイン成功」が出力されます。それ以外の場合、検証エラーに応じて、「パスワードが間違っています」または「ユーザー名が存在しません」が出力されます。
  5. ユーザー登録ページの作成

ユーザー登録とデータベースへの新しいユーザー レコードの追加のプロセスを簡素化するために、ユーザー登録ページを作成できます。このページでは、ユーザーにユーザー名とパスワードの入力を求め、この情報を以前に作成した PHP コードに POST メソッドを通じて渡します。

以下は簡単なユーザー登録ページの例です:



ユーザー登録ページ


ユーザー登録


<label for="username">用户名:</label>
<input type="text" id="username" name="username"><br><br>
<label for="password">密码:</label>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="注册">



上記のコードでは、

タグを使用して収集するフォームを作成します。 users 登録プロセス中に入力されたユーザー名とパスワード。このうち、ユーザー名はテキストボックスを使用して入力し、パスワードはパスワードボックスを使用して入力します。

  1. 概要

この記事では、PHP と MySQL を使用してユーザー名検証機能を実装する方法を紹介しました。まず、MySQL データベースとユーザー テーブルを作成し、ユーザー レコードごとに一意のユーザー名と暗号化されたパスワードを作成しました。次に、MySQL データベースに接続し、ユーザーが入力したユーザー名とパスワードが一致するかどうかを確認するための PHP コードを作成しました。最後に、ユーザーがカスタム フォームで新しいアカウントを登録できるユーザー登録ページを作成しました。

本記事では以上をご紹介しますので、ユーザー認証機能の実現の一助になれば幸いです。

以上がphp mysqlでユーザー名検証を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。