我试图创建一个html表单来更改php中的密码。 我的数据库是在easyphp中创建的。
以下是我编写的用于更改密码的代码,当我测试时没有发生任何变化或更改。
<?
$user_name = "root";
$pass_word = "";
$database = "login";
$server = "127.0.0.1";
if(isset($_POST['submit']))
{
$oldpassword = md5($_POST['cur_password']);
$newpassword= md5($_POST['new_password']);
$confirm_password = md5($_POST['confirm_password']);
$usermane = $_SESSION['username'];
$con = mysqli_connect($server, $user_name, $pass_word,$database);
if (!$con)
{
die('Could not connect: ' . mysqli_connect_error());
}
$select=mysqli_query("select * from login where L1='$username'");
$fetch=mysqli_fetch_array($select);
$data_password=md5($fetch['password']);
if($newpassword==$confirm_password && $data_password==$oldpassword)
{
$insert=mysqli_query("update login set L2='$confirm_password' where L1='$username'");
}
if($insert)
{
echo "Password changed";
}
else
{
echo "Password not changed";
}
}
}
mysqli_close($con);
?>
<html>
<head>
</head>
<body>
<FORM NAME ="form1" METHOD ="POST" ACTION ="changepassword.php">
<p>old password<br />
<input type="password" name="current_password" /></p>
<p>New password<br />
<input type="password" name="new_password"/>
</p>
<p>Confirm password<br />
<input type="password" name="confirm_password"/>
</p>
<input name="submit" type="submit" value="Save Password" />
</body>
</html>
请告诉我这里有什么问题。
谢谢:D
答案 0 :(得分:2)
$usermane
看起来像语法错误。你不应该得到任何错误吗?
答案 1 :(得分:1)
更改
$data_password=md5($fetch['password']);
到
$data_password=$fetch['password'];
您已经将密码存储为哈希值(至少根据您的insert语句),当您获取哈希值时,您只需获得新的哈希值。
导致$ data_password不等于$ oldpassword
if($newpassword==$confirm_password && $data_password==$oldpassword)
{
$insert=mysqli_query("update login set L2='$confirm_password' where L1='$username'");
}
同样是Eisa Adil指出
$usermane
应该是
$username
答案 2 :(得分:1)
用户名和用户名不匹配
$usermane = $_SESSION['username'];
$select=mysqli_query("select * from login where L1='$username'");