Maison > interface Web > Questions et réponses frontales > jquery changement de vérification du mot de passe

jquery changement de vérification du mot de passe

WBOY
Libérer: 2023-05-25 15:46:09
original
668 Les gens l'ont consulté

Avec la popularité d'Internet, de plus en plus de personnes commencent à comprendre et à utiliser divers services en ligne, tels que les achats en ligne, les réseaux sociaux, etc. Ces services nous obligent généralement à créer un compte et à définir un mot de passe pour garantir la sécurité et la protection de la vie privée. Cependant, lorsque nous devons changer le mot de passe, nous pouvons rencontrer des difficultés et des erreurs. Pour le moment, nous devons utiliser la bibliothèque JavaScript jQuery pour résoudre le problème. Cet article explique comment utiliser jQuery pour la vérification et la modification du mot de passe.

  1. Vérification du mot de passe

Tout d'abord, nous devons nous assurer que l'utilisateur saisit le mot de passe d'origine correct avant de pouvoir le modifier. Pour ce faire, nous pouvons créer un formulaire avec deux zones de saisie, une pour le mot de passe d'origine de l'utilisateur et une pour le nouveau mot de passe.

<form>
  <label>原密码:</label>
  <input type="password" id="oldPassword"><br>
  <label>新密码:</label>
  <input type="password" id="newPassword"><br>
  <input type="submit" value="更改密码" id="changePasswordBtn">
</form>
Copier après la connexion

Ensuite, nous utilisons jQuery pour écouter l'événement de clic du bouton de soumission et vérifier si le mot de passe d'origine est correct. Si le mot de passe d'origine est saisi correctement, l'utilisateur est autorisé à modifier le mot de passe, sinon une saisie incorrecte est demandée.

$(document).ready(function() {
  $('#changePasswordBtn').click(function(event) {
    event.preventDefault();

    // 获取原始密码和新密码
    var oldPassword = $('#oldPassword').val();
    var newPassword = $('#newPassword').val();

    // 发送AJAX请求到服务器验证原密码是否正确
    $.ajax({
      url: 'check_password.php',
      method: 'POST',
      data: { oldPassword: oldPassword },
      success: function(response) {
        if (response === 'success') {
          // 原密码正确,允许修改密码
          // ...
        } else {
          // 原密码错误,提示重新输入
          alert('原密码输入错误,请重新输入。');
        }
      }
    });
  });
});
Copier après la connexion

Dans le code ci-dessus, nous utilisons la technologie AJAX pour envoyer une requête POST au serveur afin de vérifier si le mot de passe d'origine saisi est correct. Le code de vérification de mot de passe simple implémenté côté serveur est le suivant :

// check_password.php
<?php
session_start();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  $oldPassword = $_POST['oldPassword'];
  $hashedPassword = $_SESSION['hashedPassword']; // 从会话中获取已加密的密码

  if (password_verify($oldPassword, $hashedPassword)) {
    echo 'success'; // 原密码正确
  } else {
    echo 'failure'; // 原密码错误
  }
} else {
  header('HTTP/1.1 405 Method Not Allowed');
  header('Allow: POST');
  exit;
}
?>
Copier après la connexion

Dans le code ci-dessus, nous utilisons la fonction de vérification de mot de passe intégrée de PHP password_verify() pour vérifier si le mot de passe d'origine saisi est correct. De plus, pour garantir la sécurité, nous utilisons une variable de session pour stocker le mot de passe crypté au lieu de transmettre le mot de passe en texte clair au client.

  1. Modification du mot de passe

Après avoir vérifié le mot de passe d'origine, nous pouvons utiliser jQuery pour changer le mot de passe. Nous utilisons à nouveau la technologie AJAX pour transmettre le nouveau mot de passe au serveur, et le côté serveur cryptera le nouveau mot de passe et le stockera dans la base de données. Afin de vérifier si le serveur a réussi à mettre à jour le mot de passe, nous pouvons effectuer les opérations correspondantes dans la fonction de rappel renvoyée par la requête AJAX.

// 修改密码
$.ajax({
  url: 'change_password.php',
  method: 'POST',
  data: { newPassword: newPassword },
  success: function(response) {
    if (response === 'success') {
      // 密码修改成功,提示用户并清除输入框内容
      alert('密码修改成功!');
      $('#oldPassword').val('');
      $('#newPassword').val('');
    } else {
      // 密码修改失败,提示用户
      alert('密码修改失败,请稍后再试。');
    }
  }
});

// change_password.php
<?php
session_start();
 
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  $newPassword = $_POST['newPassword'];
  $email = $_SESSION['email']; // 假设我们使用电子邮件作为用户名

  // 将新密码加密
  $hashedPassword = password_hash($newPassword, PASSWORD_DEFAULT);

  // 将新密码存储到数据库中
  $db = new PDO('mysql:host=localhost;dbname=test', 'root', '');
  $stmt = $db->prepare('UPDATE users SET password = ? WHERE email = ?');
  $stmt->execute(array($hashedPassword, $email));

  // 检查是否成功更新数据库
  if ($stmt->rowCount() === 1) {
    echo 'success'; // 密码修改成功
  } else {
    echo 'failure'; // 密码修改失败
  }
} else {
  header('HTTP/1.1 405 Method Not Allowed');
  header('Allow: POST');
  exit;
}
?>
Copier après la connexion

Dans le code ci-dessus, nous utilisons la fonction de cryptage de mot de passe intégrée de PHP password_hash() pour crypter et stocker le nouveau mot de passe dans la base de données. Si la base de données est mise à jour avec succès, le serveur renvoie la chaîne « succès », sinon il renvoie « échec ». Dans le code client, nous déterminons si l'opération a réussi en fonction de la chaîne renvoyée par le serveur et invitons l'utilisateur en conséquence.

Pour résumer, l'utilisation de jQuery pour la vérification et la modification des mots de passe est une méthode sûre et fiable pour garantir la sécurité et la protection de la confidentialité des comptes d'utilisateurs. Il convient de noter que nous devons utiliser des algorithmes et des technologies de cryptage de niveau supérieur pour garantir la sécurité des mots de passe des utilisateurs, comme l'utilisation de l'algorithme bcrypt ou/et de la fonction étendue de dérivation de clé PBKDF2 pour crypter les mots de passe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal