PHP は、動的な Web サイトや Web アプリケーションの開発に広く使用されているサーバー側スクリプト言語です。 Webアプリケーションでは通常、ユーザーのログイン、登録、情報の編集など、複数のユーザーを管理する必要があります。一般的な操作の 1 つは、複数のユーザーのパスワードを変更することです。この記事では、PHP を使用して複数のユーザーのパスワードを変更する関数を作成する方法を紹介します。
1. データベース設計
記述する前に、まずデータベース構造を設計する必要があります。システムに「users」という名前のユーザー テーブルがあり、次のフィールドが含まれているとします。
2. パスワード変更フォームの作成
HTML でパスワード変更フォームを作成します。フォームには次の入力ボックスが含まれています:
以下はサンプル HTML コードです:
<form action="update_password.php" method="post"> <label for="old_password">旧密码:</label> <input type="password" name="old_password"> <br> <label for="new_password">新密码:</label> <input type="password" name="new_password"> <br> <label for="confirm_password">确认密码:</label> <input type="password" name="confirm_password"> <br> <button type="submit">修改密码</button> </form>
3. パスワード変更リクエストを処理する
次に、パスワードを処理する PHP スクリプトを作成する必要があります。変更要求。まず、フォームによって送信されたデータを取得します:
$old_password = $_POST['old_password']; $new_password = $_POST['new_password']; $confirm_password = $_POST['confirm_password'];
次に、入力データの有効性を確認します:
// 判断新密码和确认密码是否一致 if ($new_password != $confirm_password) { die("新密码和确认密码不一致。"); } // 验证旧密码是否正确 // 假设当前用户ID为1 $user = getUserById(1); if (!password_verify($old_password, $user['password'])) { die("旧密码不正确。"); }
次に、すべてのユーザーを反復処理し、パスワードを変更し、結果を次の場所に保存します。配列:
$results = array(); $users = getAllUsers(); foreach ($users as $user) { // 修改密码 $new_hashed_password = password_hash($new_password, PASSWORD_DEFAULT); $sql = "UPDATE users SET password = '$new_hashed_password' WHERE id = " . $user['id']; $result = mysqli_query($conn, $sql); if (!$result) { // 修改失败 $results[] = array( 'user_id' => $user['id'], 'username' => $user['username'], 'success' => false ); } else { // 修改成功 $results[] = array( 'user_id' => $user['id'], 'username' => $user['username'], 'success' => true ); } }
最後に、変更結果をユーザーに返します:
foreach ($results as $result) { if ($result['success']) { echo "用户 " . $result['username'] . " 的密码已成功修改。<br>"; } else { echo "用户 " . $result['username'] . " 的密码修改失败。<br>"; } }
4. 完全なコード
以下は、マルチユーザー パスワードを変更するための完全な PHP コードです。 :
<?php // 数据库连接 $conn = mysqli_connect('localhost', 'username', 'password', 'database'); // 获取当前用户信息 function getUserById($user_id) { global $conn; $sql = "SELECT * FROM users WHERE id = $user_id"; $result = mysqli_query($conn, $sql); $user = mysqli_fetch_assoc($result); return $user; } // 获取所有用户 function getAllUsers() { global $conn; $sql = "SELECT * FROM users"; $result = mysqli_query($conn, $sql); $users = mysqli_fetch_all($result, MYSQLI_ASSOC); return $users; } // 修改密码 function updatePassword($old_password, $new_password, $confirm_password) { global $conn; // 判断新密码和确认密码是否一致 if ($new_password != $confirm_password) { die("新密码和确认密码不一致。"); } // 验证旧密码是否正确 // 假设当前用户ID为1 $user = getUserById(1); if (!password_verify($old_password, $user['password'])) { die("旧密码不正确。"); } $results = array(); $users = getAllUsers(); foreach ($users as $user) { // 修改密码 $new_hashed_password = password_hash($new_password, PASSWORD_DEFAULT); $sql = "UPDATE users SET password = '$new_hashed_password' WHERE id = " . $user['id']; $result = mysqli_query($conn, $sql); if (!$result) { // 修改失败 $results[] = array( 'user_id' => $user['id'], 'username' => $user['username'], 'success' => false ); } else { // 修改成功 $results[] = array( 'user_id' => $user['id'], 'username' => $user['username'], 'success' => true ); } } foreach ($results as $result) { if ($result['success']) { echo "用户 " . $result['username'] . " 的密码已成功修改。<br>"; } else { echo "用户 " . $result['username'] . " 的密码修改失败。<br>"; } } } // 处理表单提交 if (isset($_POST['old_password']) && isset($_POST['new_password']) && isset($_POST['confirm_password'])) { updatePassword($_POST['old_password'], $_POST['new_password'], $_POST['confirm_password']); } ?>
5. 概要
PHP は、さまざまな Web アプリケーションの開発に適した強力なサーバーサイド スクリプト言語です。この記事では、PHP を使用して複数のユーザーのパスワードを変更する関数を作成する方法を紹介します。この機能には、データベース接続、ユーザー認証、データの走査、結果の出力などが含まれます。PHP 初心者にとってはある程度の困難がありますが、知識を習得することで、次の開発ステップの基礎を提供できます。
以上がPHP で複数のユーザーのパスワードを変更する関数を記述する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。