현재 위치: > 최신 기사 목록> PHP에 대한 비밀번호 재설정 기능 구현을위한 완전한 자습서 및 샘플 코드

PHP에 대한 비밀번호 재설정 기능 구현을위한 완전한 자습서 및 샘플 코드

M66 2025-07-09

비밀번호 재설정 이메일의 중요성

최신 네트워크 응용 프로그램에서 비밀번호 재설정 기능은 사용자 계정의 보안을 보장하는 데 중요한 부분입니다. 이메일로 비밀번호 재설정 링크를 전송하면 사용자의 운영이 용이해질뿐만 아니라 계정에 불법적으로 액세스되는 것을 효과적으로 방지합니다. 이 기사는 PHP를 사용하여 비밀번호 재설정 메일 기능을 구현하고 직접 유입 코드 예제를 제공하는 방법에 대한 심층적 인 소개를 제공합니다.

비밀번호를 구현하는 단계 이메일 기능을 재설정합니다

이 기능 구현에는 주로 다음 주요 단계가 포함됩니다.

사용자는 비밀번호 재설정 요청을 제출합니다

사용자가 암호를 잊어 버리면 페이지를 등록 할 때 사용되는 이메일 주소를 입력하고 버튼을 클릭하여 암호 재설정 이메일을 보내 요청을 시작해야합니다.

이메일 주소의 유효성을 확인하십시오

요청을받은 후 배경은 사용자가 제출 한 사서함의 확인을 포맷하고 사서함이 데이터베이스에 등록되어 있는지 확인해야합니다.

독특한 토큰을 생성하고 저장하십시오

사서함 확인이 통과 된 후 시스템은 고유 한 비밀번호 재설정 토큰을 생성하고 이후 확인을 위해 데이터베이스의 사용자의 사서함과 토큰을 연결해야합니다.

비밀번호 재설정 이메일을 보내십시오

PHP의 이메일 기능을 사용하여 사용자에게 비밀번호 재설정 링크가 포함 된 이메일을 보냅니다. 링크에는 링크의 독창성과 보안을 보장하기 위해 생성 된 토큰이 포함되어야합니다.

프로세스 비밀번호 재설정 요청

사용자가 이메일에서 링크를 클릭 한 후 배경은 토큰을 구문 분석하고 데이터베이스에서 확인합니다. 확인이 성공하면 비밀번호 재설정 양식 페이지로 이동하십시오.

사용자는 새 비밀번호를 입력합니다

비밀번호 재설정 페이지에서 사용자는 새 비밀번호를 입력하고 확인하며 배경은 입력이 일관성이 있고 암호 강도 요구 사항이 필요한지 여부를 확인합니다.

데이터베이스 비밀번호를 업데이트하고 무효화하십시오

확인 후 새 비밀번호를 데이터베이스로 업데이트하고 관련 토큰을 삭제하여 재사용을 방지하고 보안을 보장하십시오.

PHP 코드 예제

<?php
// 비밀번호 재설정 이메일을 보내십시오
function sendPasswordResetEmail($email, $token) {
    $subject = '비밀번호 재설정';
    $message = '비밀번호를 재설정하려면 아래 링크를 클릭하십시오:';
    $message .= '<a href="http://your-domain.com/reset-password.php?token=' . $token . '"> 비밀번호 재설정 &#39;;
    // 이메일 $ HEADERS = &#39;Content-Type : Text/Html; charset = utf-8 &#39;;
    메일 ($ 이메일, $ 주제, $ 메시지, $ 헤더);
}

// 프로세스 비밀번호 재설정 요청 기능 handspasswordResetRequest ($ token) {
    글로벌 $ db; // 데이터베이스 연결이 설정되어 있는지 확인하십시오. $ query = "select * where reset_token = &#39;". mysqli_real_escape_string ($ db, $ token). " &#39;";;
    $ result = mysqli_query ($ db, $ query);
    if (mysqli_num_rows ($ result) == 1) {
        // 토큰 일치가 성공적으로 비밀번호 재설정 페이지 헤더로 점프합니다 ( "위치 : Reset-password-form.php? token =". urlencode ($ token));
        출구();
    } 또 다른 {
        에코 "무효 토큰!";
    }
}

// 사용자 비밀번호 기능 업데이트 업데이트 패스 워드 ($ 토큰, $ newPassword) {
    글로벌 $ db; // 데이터베이스 연결이 설정되어 있는지 확인하십시오. $ HASHEDPASSWORD = PASSBOST_HASH ($ NewPassword, Password_Default);
    $ query = "Update User used set password = &#39;". mysqli_real_escape_string ($ db, $ HASHEDPASSWORD). " &#39;, reset_token = null where reset_token =&#39;". mysqli_real_escape_string ($ db, $ token). " &#39;";;
    mysqli_query ($ db, $ query);
}

// 프로세스 비밀번호 재설정 양식 제출 기능 handlePasswordResetForm () {
    $ newPassword = $ _post [ &#39;new_password&#39;];
    $ quicatepassword = $ _post [ &#39;confict_password&#39;];
    $ token = $ _post [ &#39;Token&#39;];

    if ($ newPassword! == $ quickPassword) {
        에코 "두 번 입력 한 비밀번호는 일치하지 않습니다!";
    } 또 다른 {
        UpdatePassword ($ token, $ newPassword);
        Echo "비밀번호 재설정!";
    }
}

// 메인 논리 처리 if (isset ($ _ get [ &#39;token&#39;])) {
    handlePasswordResetRequest ($ _ get [ &#39;token&#39;]);
} elseif (isset ($ _ post [ &#39;제출&#39;])) {
    handlePasswordResetForm ();
}
?>

친절한 팁

자신의 요구에 따라 코드를 조정하십시오. 특히 SMTP 서버 정보는 이메일 전송 부품에 올바르게 구성되어야 전자 메일을 성공적으로 전송할 수 있도록해야합니다. 또한 보안을 개선하기 위해 토큰을 암호화하고 토큰이 남용되는 것을 방지하기 위해 유효 기간 제한을 설정하는 것이 좋습니다.

요약

위의 소개 및 코드 예제를 통해 전체 기능, 안전하고 안정적인 기능을 갖춘 PHP 비밀번호 재설정 이메일 시스템을 구축하여 사용자 경험 및 계정 보안을 향상시킬 수 있습니다.