ホームページ  >  記事  >  バックエンド開発  >  php ajaxでパスワードを変更する実装方法を段階的に理解します。

php ajaxでパスワードを変更する実装方法を段階的に理解します。

PHPz
PHPzオリジナル
2023-04-25 18:26:53598ブラウズ

インターネット技術の継続的な発展に伴い、私たちはさまざまなアプリケーションをますます使用するようになり、これらのアプリケーションではプライバシーとセキュリティを保護するためにログイン アカウントが必要になります。これらのアプリケーションの場合、パスワードの変更は、私たちが通常実行する最も一般的な操作の 1 つです。このプロセスでは、通常、実装に php と ajax を使用することを選択します。次に、PHP ajax パスワード変更を実装する方法を段階的に学びましょう。

1. フロントエンド ページの設計

まず、パスワードを変更する機能を提供するフロントエンド ページを設計する必要があります。このフロントエンド ページでは、現在のパスワード、新しいパスワード、新しいパスワードの確認などの情報を入力する必要があるため、フォームが必要です。フォームは処理のためにバックグラウンドに送信する必要があるため、フォームを送信するには「送信」ボタンなどのボタンも使用する必要があります。

2. PHP バックグラウンド処理

次に、このフォームを処理するために PHP バックグラウンドを使用する必要があります。最初に注意すべきことは、フロントエンド ページが PHP バックエンドに POST リクエストを送信して、フォームをバックエンドに送信する必要があるということです。渡されたフォーム データを 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() 関数を使用して、現在のパスワードが正しいかどうかを確認します。現在のパスワードが間違って入力された場合、ページはユーザーにパスワードの再入力を求める必要があります。

次に、2 回入力した新しいパスワードが一致しているかどうかを確認する必要があります。

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

2 回入力した新しいパスワードが一致しない場合は、ユーザーに再入力を求めるプロンプトが表示される必要があります。

セキュリティ上の理由から、ユーザーのパスワードを保存するにはパスワード ハッシュを使用する必要があることに注意してください。ここでは、password_hash() 関数を使用して新しいパスワードをハッシュします:

$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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。