ホームページ > バックエンド開発 > PHPチュートリアル > PHPを使用してユーザーのログインと登録システムを実装する

PHPを使用してユーザーのログインと登録システムを実装する

王林
リリース: 2023-05-11 08:38:01
オリジナル
3317 人が閲覧しました

インターネットの普及に伴い、ユーザーのログインおよび登録システムも多くの Web サイトにとって不可欠な機能になりました。この記事では、PHP 言語を使用して簡単なユーザーのログインと登録システムを実装します。

  1. データベースの構築

まず、ユーザー情報を保存するデータベースを作成する必要があります。 MySQL データベースを使用し、ユーザー名とパスワードを保存する「users」というテーブルを作成します。

CREATE TABLE users (

id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
ログイン後にコピー

);

  1. 登録ページ

次に、登録ページを作成する必要があります。ユーザーにユーザー名とパスワードの入力を求めます。登録ページでは、HTML フォームを使用してユーザーの入力情報を収集し、PHP コードを使用してこの情報をデータベースに挿入する必要があります。

以下は、簡単な登録ページのコードです:



<title>用户注册</title>
ログイン後にコピー

< ;/head>

<h1>用户注册</h1>
<form action="register.php" method="post">
    <label>用户名:</label>
    <input type="text" name="username" required>
    <br><br>
    <label>密码:</label>
    <input type="password" name="password" required>
    <br><br>
    <input type="submit" value="注册">
</form>
ログイン後にコピー


上記のコードでは、HTML フォームを使用してデータを収集します。ユーザーは情報を入力し、フォームの action 属性を「register.php」に設定します。これは、ユーザーがフォームを送信すると、PHP コードが入力情報を処理することを意味します。次に、これらの入力を処理するための register.php ファイルを作成します。

  1. 登録処理

フォーム データをデータベースに挿入する前に、入力データが有効であることを確認する必要があります。ユーザー名が一意であり、パスワードが暗号化されていることを確認します。以下は register.php ファイルのコードです:

// ユーザー入力の取得
$username = $_POST['username'];
$password = $_POST[ 'password'];

//データベース接続のテスト
$mysqli = new mysqli('localhost', 'root', '', 'test');
if ($ mysqli-> ;connect_errno) {

die('连接失败: '.$mysqli->connect_error);
ログイン後にコピー
ログイン後にコピー

}

// ユーザー名が一意であるかどうかを確認します
$result = $mysqli->query("SELECT * FROM users WHERE username= '$username' ");
if ($result->num_rows > 0) {

die('用户名已存在');
ログイン後にコピー

}

// 暗号化されたパスワード
$password = password_hash($パスワード, PASSWORD_DEFAULT) ;

// ユーザー情報をデータベースに挿入します
$sql = "INSERT INTO users (username,password) VALUES ('$username', '$password')";
if ($mysqli ->query($sql)) {

echo '注册成功';
ログイン後にコピー

} else {

echo '注册失败: '.$mysqli->error;
ログイン後にコピー

}
?>

register.php 内上記のファイルでは、まずユーザーが入力したユーザー名とパスワードを取得します。次に、ユーザー名がデータベースにすでに存在するかどうかを確認します。次に、password_hash 関数を使用してパスワードを暗号化します。最後に、ユーザー名と暗号化されたパスワードをデータベースに挿入します。挿入が成功すると、「登録成功」のメッセージが出力されます。それ以外の場合は、「登録に失敗しました」というメッセージが出力されます。

  1. ログインページ

次に、ユーザーが登録したユーザー名とパスワードを入力するためのログインページを作成します。ログイン ページでは、HTML フォームを使用してユーザーの入力情報を収集し、PHP コードを使用してユーザーの身元を認証します。

以下は、単純なログイン ページのコードです:



<title>用户登录</title>
ログイン後にコピー

< ;/head>

<h1>用户登录</h1>
<form action="login.php" method="post">
    <label>用户名:</label>
    <input type="text" name="username" required>
    <br><br>
    <label>密码:</label>
    <input type="password" name="password" required>
    <br><br>
    <input type="submit" value="登录">
</form>
ログイン後にコピー


上記のコードでは、HTML フォームを使用してデータを収集します。ユーザーの入力情報とフォームの action 属性は「login.php」に設定されます。これは、ユーザーがフォームを送信すると、PHP コードが入力情報を処理することを意味します。次に、ユーザーの身元情報を確認するために、login.php ファイルを作成します。

  1. ログイン処理

ユーザーのログイン要求を処理する前に、入力されたデータが有効であることを確認する必要があります。ユーザー名が存在するかどうか、および入力されたパスワードがデータベース内のパスワードと一致するかどうかを確認します。以下は、login.php ファイルのコードです:

// ユーザー入力を取得します
$username = $_POST['username'];
$password = $_POST[ 'password'];

//データベース接続のテスト
$mysqli = new mysqli('localhost', 'root', '', 'test');
if ($ mysqli-> ;connect_errno) {

die('连接失败: '.$mysqli->connect_error);
ログイン後にコピー
ログイン後にコピー

}

// ユーザー名が存在するかどうかを確認します
$result = $mysqli->query("SELECT * FROM users WHERE username=' $username' ");
if ($result->num_rows == 0) {

die('用户名不存在,请检查输入');
ログイン後にコピー

}

// パスワードが正しいか確認してください
$user = $result-> fetch_assoc();
if (!password_verify($password, $user['password'])) {

die('密码错误,请检查输入');
ログイン後にコピー

}

echo 'ようこそ'.$ username;
?>

上記のlogin.phpファイルでは、まずユーザーが入力したユーザー名とパスワードを取得します。次に、ユーザー名がデータベースに存在するかどうかを確認します。次に、そのユーザーのパスワードをデータベースから取得し、password_verify 関数を使用して、入力されたパスワードがデータベース内のパスワードと一致するかどうかを確認します。パスワードが一致すると、ウェルカムメッセージが出力されます。それ以外の場合は、エラー メッセージを出力し、プログラムを終了します。

これまでに、簡単なユーザーのログインと登録システムの実装が完了しました。ユーザーはWebサイト上でアカウントを登録し、ログインすることで特定のページにアクセスできるシステムです。もちろん、これは最も基本的な実装方法にすぎず、実際のアプリケーションでは、システムの可用性とセキュリティを確保するために、より複雑な機能が必要になります。

以上がPHPを使用してユーザーのログインと登録システムを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート