>  기사  >  백엔드 개발  >  PHP Ajax에서 비밀번호를 변경하는 구현 방법을 단계별로 이해하십시오.

PHP Ajax에서 비밀번호를 변경하는 구현 방법을 단계별로 이해하십시오.

PHPz
PHPz원래의
2023-04-25 18:26:53560검색

인터넷 기술이 지속적으로 발전함에 따라 우리는 점점 더 다양한 애플리케이션을 사용하고 있으며, 이러한 애플리케이션에는 개인 정보 보호 및 보안을 보호하기 위해 로그인이 필요합니다. 이러한 애플리케이션의 경우 비밀번호 변경은 일반적으로 수행하는 가장 일반적인 작업 중 하나입니다. 이 과정에서 우리는 일반적으로 구현을 위해 php와 ajax를 사용하도록 선택합니다. 다음으로 PHP Ajax 비밀번호 변경을 구현하는 방법을 단계별로 알아 보겠습니다.

1. 프런트 엔드 페이지 디자인

먼저 비밀번호 변경 기능을 제공할 프런트 엔드 페이지를 디자인해야 합니다. 이 프런트엔드 페이지에서는 현재 비밀번호, 새 비밀번호, 새 비밀번호 확인 및 기타 정보를 입력해야 하므로 양식이 필요합니다. 양식은 처리를 위해 백그라운드로 제출되어야 하므로 양식을 제출하려면 "제출" 버튼과 같은 버튼도 사용해야 합니다.

2. PHP 백그라운드 처리

다음으로, 이 양식을 처리하려면 PHP 백그라운드를 사용해야 합니다. 가장 먼저 주목해야 할 점은 프런트 엔드 페이지가 양식을 백엔드에 제출하기 위해 PHP 백엔드로 게시물 요청을 보내야 한다는 것입니다. 전달된 양식 데이터를 PHP로 받으려면 $_POST 배열을 사용해야 합니다.

$old_password = $_POST['old_password'];
$new_password = $_POST['new_password'];
$confirm_password = $_POST['confirm_password'];

다음으로 몇 가지 비즈니스 로직 처리를 수행해야 합니다. 먼저 현재 비밀번호가 올바른지 확인해야 합니다.

if (!password_verify($old_password, $user['password'])) {
    echo '当前密码错误,请重新输入。';
    exit;
}

여기에서는 현재 비밀번호가 올바른지 확인하기 위해 Password_verify() 함수가 사용됩니다. 현재 비밀번호를 잘못 입력한 경우 페이지에서 사용자에게 비밀번호를 다시 입력하라는 메시지를 표시해야 합니다.

다음으로 두 번 입력한 새 비밀번호가 일치하는지 확인해야 합니다.

if ($new_password !== $confirm_password) {
    echo '两次输入的新密码不一致,请重新输入。';
    exit;
}

두 번 입력한 새 비밀번호가 일치하지 않으면 사용자에게 다시 입력하라는 메시지를 표시해야 합니다.

보안상의 이유로 사용자 비밀번호를 저장하려면 비밀번호 해시를 사용해야 한다는 점에 유의하는 것이 중요합니다. 여기서는 비밀번호_해시() 함수를 사용하여 새 비밀번호를 해시합니다.

$password_hashed = password_hash($new_password, PASSWORD_DEFAULT);

마지막으로 sql 문을 사용하여 데이터베이스 업데이트 작업을 수행합니다.

$sql = "UPDATE users SET password = :password WHERE id = :id";
$stmt = $db->prepare($sql);
$stmt->bindParam(':password', $password_hashed, PDO::PARAM_STR);
$stmt->bindParam(':id', $user['id'], PDO::PARAM_INT);
$stmt->execute();

위 작업이 완료된 후 페이지는 사용자에게 비밀번호를 변경하라는 메시지를 표시해야 합니다. 비밀번호를 성공적으로 입력했습니다.

3. Ajax 비동기 제출

마지막 단계는 Ajax를 사용하여 프런트 엔드 페이지를 비동기적으로 제출하는 것입니다. 비동기 커밋은 일반적으로 동기 커밋보다 더 나은 사용자 경험을 제공합니다. 비동기 제출은 부분적으로만 새로 고쳐지며 전체 페이지가 새로 고쳐지지는 않습니다. 여기서는 jquery의 $.ajax() 메소드를 사용하여 비동기 제출을 구현합니다.

$.ajax({
    type: 'POST',
    url: 'update_password.php',
    data: $('#form').serialize(),
    dataType: 'json',
    success: function (data) {
        if (data.success) {
            alert('修改密码成功');
            window.location.href = 'index.php';
        } else {
            alert(data.message);
        }
    },
    error: function () {
        alert('修改密码失败,请重试!');
    }
});

위는 PHP ajax에서 비밀번호를 변경하는 구현 방법입니다. 프런트 엔드 페이지 디자인, PHP 백그라운드 처리 및 Ajax 비동기 제출을 연결하여 비밀번호 변경 작업을 실현합니다.

위 내용은 PHP Ajax에서 비밀번호를 변경하는 구현 방법을 단계별로 이해하십시오.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.