【问题标题】:How to update password in PHP如何在 PHP 中更新密码
【发布时间】:2014-09-04 14:41:07
【问题描述】:

这是functions.php

function updatePassword($id,$npassword)
{
if(mysql_query("UPDATE `users` SET `password`='".$npassword."'  WHERE `id`=".$id))
    return true;
 else
    return false;
}

这是setting.php

<div class="settingform">
 <form action="setting.php?update=password" method="post">
 <h2>Past Password:</h2> <input type="password" maxlength="100" name="p1"     value="" /><br />
<h2> New Password:</h2> <input type="password" maxlength="100" name="p2" value="" /><br />
 <input type="submit"name="newpasswordSubmit" value="Save" /><br /><br />

                    </form> 
                <?php 

                    if(isset($_GET['update']) && $_GET['update']=="password")
                     {
                   $ppassword =   trim(mysql_real_escape_string(md5($_POST['p1'])));
                        $npassword = trim(mysql_real_escape_string(md5($_POST['p2'])));

                        $errors = array();
                         if(strlen($npassword)>100)
                            $errors = "your EMAIL is too long";
 if($ppassword !== $password) 
                            $errors = "Password did not match";

                        if(empty($errors))
                        {

强文本 if(updatePassword($settingUsersData['id'],$npassword)) echo "更新了!";

                            else
                            echo "An Error Has Occurred!";
                        }
                        else 
                            foreach ($errors as $e) 
                                echo $e."<br/>";
                    }
                ?>  
            </div>

【问题讨论】:

  • 那么……有问题吗?
  • 请看一下PHP的函数password_hash(),密码不应该以明文形式存储在数据库中。

标签: php mysql function passwords


【解决方案1】:

我认为问题出在您的更新功能上 从字段名称中删除引号。

function updatePassword($id,$npassword)
{
 $sql = "UPDATE users SET password='".$npassword."' WHERE id=".$id);
 $result=mysqli_query($connection, $sql)
 $affected_rows=mysqli_affected_rows($result);
 if($affected_rows==1){
   return true;
 }else{
   return true;
  }   

}

我在您的代码中看不到您调用此函数的位置。必要时调用该函数。 (请不要使用 mysql。从 PHP 5.5.0 起已弃用,将来会被删除。)

【讨论】:

  • 调用函数的最后部分如下所示 if(updatePassword($settingUsersData['id'],$npassword)) echo "Updated!"; else echo "发生错误!"; } else foreach ($errors as $e) echo $e."
    "; } ?>
猜你喜欢
  • 1970-01-01
  • 2020-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-09
相关资源
最近更新 更多