【问题标题】:Password doesn't update, but temporary code does!? PHP mail, user forgot password [closed]密码不会更新,但临时代码会更新!? PHP邮件,用户忘记密码[关闭]
【发布时间】:2015-01-07 02:57:29
【问题描述】:

我制作了一个 webapp,我需要让用户更改他们的密码,所以我制作了一个包含临时代码的列。问题是,我的查询确实更新了我的临时代码,但不会将密码更新为新密码。请一些帮助,在此先感谢! ;)

<?php
   if(isset($_POST['submit'])) {
     $code = $_SESSION['code'];
     $email = $_SESSION['emailneger'];
     $password = $_POST['password2'];
     $password1 = $_POST['password3'];
     $reset = $_POST['reset'];
     $tempcode = "";
     if($reset == $reset) {
       if($password == $password1) {
         $query =  "UPDATE consultant SET password = ?
                    AND tempcode = ?
                    WHERE email =  ? ";
         $qry=$db->prepare($query);
         $qry->execute(array($password, $code, $email));
         echo "<p>Uw wachtwoord is hersteld!</p>";
         $query = 'UPDATE consultant SET tempcode = ? WHERE email = ?';
         $qry=$db->prepare($query);
         $qry->execute(array($tempcode, $email));
       }  else {
         echo "<p>Wachtwoorden komen niet overeen.</p>";
       }
     } else {
       echo "<p>Je link is ongeldig, probeer nogmaals alstublieft!</p>";
     }
   }
?>

【问题讨论】:

标签: php sql passwords


【解决方案1】:

您的更新不正确。语法是

UPDATE yourtable SET field1=value1, field2=value, ...
                                  ^---

注意字段/值对之间的,。您正在使用AND,它将被解析/执行为

UPDATE consultant SET password = (? AND tempcode = ?) WHERE email =  ? 
UPDATE consultant SET password = ('foo' AND tempcode=123) WHERE email = 'foo@example.com')
UPDATE consultant SET password = ('foo' AND true/false) WHERE ...
UPDATE consultant SET password = true/false WHERE ...

【讨论】:

  • 是的,它对我有用。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-18
  • 1970-01-01
  • 2016-07-25
  • 2014-06-27
  • 1970-01-01
  • 2014-09-02
相关资源
最近更新 更多