updateUserPassword.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. include 'auth-validate.php';
  3. include '../../db.php';
  4. @session_start();
  5. //pull auth parameters
  6. $password_old = isset($_REQUEST['password_old']) ? $_REQUEST['password_old'] : null;
  7. $password_new = isset($_REQUEST['password_new']) ? $_REQUEST['password_new'] : null;
  8. //make sure parameters are present
  9. if(!$password_old || !$password_new)
  10. {
  11. http_response_code(400);
  12. echo 'password missing';
  13. return;
  14. }
  15. //pull info on user from database
  16. $stmt_file = $dbh->prepare("SELECT password FROM user WHERE id_user=:id_user");
  17. $stmt_file->bindValue(':id_user', $_SESSION['id_user']);
  18. $stmt_file->execute();
  19. $rows = $stmt_file->fetchAll(PDO::FETCH_ASSOC);
  20. //check if user missing
  21. if(!count($rows))
  22. {
  23. http_response_code(404);
  24. echo 'user not found';
  25. return;
  26. }
  27. //validate password entered
  28. if(!password_verify($password_old, $rows[0]['password']))
  29. {
  30. http_response_code(403);
  31. echo 'invalid old password';
  32. return;
  33. }
  34. $stmt_file = $dbh->prepare("UPDATE user SET password = :password WHERE id_user = :id_user");
  35. $stmt_file->bindValue(':id_user', $_SESSION['id_user']);
  36. $stmt_file->bindValue(':password', password_hash($password_new));
  37. $stmt_file->execute();
  38. $rows = $stmt_file->fetchAll(PDO::FETCH_ASSOC);
  39. echo 'OK';
  40. ?>