我有用于更改用户密码的php代码。但是在我尝试了代码之后......当提交新密码时......新密码在sql数据库中显示出来......我希望它是md5代码密码。你可以用我的代码解决问题吗
if($_REQUEST['do'] == 'edit')
{
$title = 'change password';
$page = $_POST['page'];
$userId = safe($_POST['userId']);
$passwd = safe($_POST['password']);
$email = safe($_POST['Email']);
$passw2 = $_POST['password2'];
if(md5($passwd) == $_SESSION['user']['password'])
{
if(empty($passw2))
{
$pass = $_SESSION['user']['password'];
}
else
{
$pass = $passw2;
}
$query = $db->query("UPDATE users SET email = '".$email."' , password = '".$pass."' WHERE Id = '".$userId."' ");
if($query)
{
$msg = "password changed successfully";
}
答案 0 :(得分:2)
替换
$pass = $passw2;
与
$pass = hash('md5', $passw2);
答案 1 :(得分:2)
$ _SESSION ['user'] ['password']被(被禁止)编码为MD5,但从用户表单获取的passw2是普通的。
你需要改变
$pass = $passw2;
通过
$pass = md5($passw2);
在将密码提交到数据库之前将密码作为md5进行enconde。 并且还使用新密码更改$ _SESSION ['user'] ['password'],或者用户只能在同一会话中更改一次密码。