ホームページ > バックエンド開発 > PHPの問題 > phpを使用してユーザー登録とログインを実装する方法

phpを使用してユーザー登録とログインを実装する方法

PHPz
リリース: 2023-04-19 09:27:35
オリジナル
1084 人が閲覧しました

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

現代のインターネット時代では、ユーザー登録とログインは避けられないプロセスです。 Web 開発者として、ユーザー登録およびログイン システムを構築する方法を理解することは非常に重要です。この記事では、PHPを使用してユーザー登録とログインを実装する方法を紹介します。

ステップ 1: データベースを作成する

始める前に、データベースを作成する必要があります。 MySQLデータベースを使用します。 ID、ユーザー名、およびパスワードのフィールドを含む「users」という名前のテーブルを MySQL に作成します。次の SQL ステートメントを使用してテーブルを作成できます。

CREATE TABLE users (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(50) NOT NULL ,
password varchar(255) NOT NULL,
主キー (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

ステップ 2: 登録フォームを作成する

次に、ユーザー登録フォームを作成する必要があります。 HTML と PHP コードを使用してフォームを構築します。



<title>User Registration</title>
ログイン後にコピー


<h2>User Registration</h2>
<form action="register.php" method="post">
    <label>Username:</label><br>
    <input type="text" name="username" required><br>
    <label>Password:</label><br>
    <input type="password" name="password" required><br>
    <input type="submit" value="Register">
</form>
ログイン後にコピー


上記のコードは、ユーザー名とパスワードの入力ボックスと送信ボタンを含む HTML フォームを作成します。 「method」属性を「post」に設定し、フォームを「register.php」に送信します。

ステップ 3: 登録フォームの送信を処理する

次に、登録フォームの送信を処理し、ユーザー情報をデータベースに保存するために「register.php」ファイルを作成する必要があります。

//データベースに接続します
$servername = "localhost";
$username = "yourusername";
$password = "yourpassword";
$dbname = "yourdatabase";

$conn = new mysqli($servername, $username, $password, $dbname);

//データベース接続を確認します
if ( $ conn->connect_error) {

die("Connection failed: " . $conn->connect_error);
ログイン後にコピー
ログイン後にコピー

}

//フォームで送信された値を取得します
$username = $_POST['username'];
$password =password_hash( $_POST['password'], PASSWORD_DEFAULT);

//データベースにレコードを挿入します
$sql = "ユーザー (ユーザー名、パスワード) の値に挿入します ('$ユーザー名', ' $password') ";

if ($conn->query($sql) === TRUE) {

echo "Registration successful";
ログイン後にコピー

} else {

echo "Error: " . $sql . "<br>" . $conn->error;
ログイン後にコピー

}

$conn->close();
?>

上記のコードは、まずデータベースに接続します。次に、送信されたフォームの値からユーザー名とパスワードを取得し、「password_hash」関数を使用してパスワード ハッシュをデータベースに保存します。最後に、SQL ステートメントを実行して、ユーザー名とハッシュされたパスワードを「users」テーブルに挿入します。

ステップ 4: ログイン フォームを作成する

次に、ユーザーの身元を確認するためにユーザー ログイン フォームを作成する必要があります。 HTML と PHP コードを使用してフォームを作成します。



<title>User Login</title>
ログイン後にコピー


<h2>User Login</h2>
<form action="login.php" method="post">
    <label>Username:</label><br>
    <input type="text" name="username" required><br>
    <label>Password:</label><br>
    <input type="password" name="password" required><br>
    <input type="submit" value="Login">
</form>
ログイン後にコピー


上記のコードは、ユーザー名とパスワードの入力ボックスと送信ボタンを含む HTML フォームを作成します。 「method」属性を「post」に設定し、フォームを「login.php」に送信します。

ステップ 5: ログイン フォームの送信を処理する

次に、ログイン フォームの送信を処理し、ユーザーの身元を確認するために「login.php」ファイルを作成する必要があります。

//データベースに接続します
$servername = "localhost";
$username = "yourusername";
$password = "yourpassword";
$dbname = "yourdatabase";

$conn = new mysqli($servername, $username, $password, $dbname);

//データベース接続を確認します
if ( $ conn->connect_error) {

die("Connection failed: " . $conn->connect_error);
ログイン後にコピー
ログイン後にコピー

}

//フォームで送信された値を取得します
$username = $_POST['username'];
$password = $_POST ['パスワード'];

//データベースからユーザー情報を取得します
$sql = "SELECT * FROM users WHERE username = '$username'";
$result = $ conn->query($sql);

if ($result->num_rows == 1) {

$row = $result->fetch_assoc();
if (password_verify($password, $row['password'])) {
    echo "Login successful";
} else {
    echo "Invalid username or password";
}
ログイン後にコピー

} else {

echo "Invalid username or password";
ログイン後にコピー

}

$conn->close();
?>

上記のコードは、まずデータベースに接続します。次に、送信されたフォームの値からユーザー名とパスワードを取得します。次に、SELECT ステートメントを実行して、そのユーザー名を含むレコードを「users」テーブルから取得します。レコードが見つかった場合は、そのレコードのパスワード ハッシュが送信されたパスワードと比較されます。パスワードが一致する場合は「ログイン成功」が出力され、一致しない場合は「無効なユーザー名またはパスワード」が出力されます。

概要

この記事では、PHP と MySQL データベースを使用して、ユーザー登録とログイン システムを実装します。この記事では、次の方法を学びました:

  • MySQL データベースを確立し、「users」テーブルを作成します。
  • ユーザー登録フォームとログイン フォームを作成します。
  • PHP を使用してフォームの送信を処理し、ユーザー情報をデータベースに保存します。 ;
  • ユーザー ID を検証し、対応する情報を出力します。

実際のアプリケーションでは、必要に応じて変更および拡張できます。

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

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