PHP는 동적 웹사이트 및 웹 애플리케이션 개발에 널리 사용되는 서버측 스크립팅 언어입니다. 웹 애플리케이션에서는 일반적으로 사용자 로그인, 등록, 정보 편집 등을 포함하여 여러 사용자를 관리해야 합니다. 일반적인 작업 중 하나는 여러 사용자의 비밀번호를 변경하는 것입니다. 이 기사에서는 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는 다양한 용도에 적합한 강력한 서버 측 스크립팅 언어입니다. 웹 애플리케이션 개발. 이 기사에서는 PHP를 사용하여 여러 사용자의 비밀번호를 변경하는 함수를 작성하는 방법을 소개합니다. 이 기능에는 데이터베이스 연결, 사용자 인증, 데이터 탐색 및 결과 출력 등이 포함됩니다. PHP 초보자에게는 특정 어려움이 있지만 지식을 익히면 개발의 다음 단계를 위한 기초가 제공될 수 있습니다.
위 내용은 PHP에서 여러 사용자의 비밀번호를 변경하는 함수를 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!