我试图为我的MySQL数据库用户提供一个简单的表单,以便他们可以更改其数据库密码。到目前为止,我已经实现了以下文件:changepass.html - 密码更改表单页面和pass.php,执行器php。我不是一个专业的PHP编码器,因此我无法走得更远。我的代码没有验证用户名和/或当前的数据库密码。使用PHP更改MYSQL用户密码
我想添加一个简单的检查数据库中用户名的验证,也是当前密码,所以它应该在任何更改之前验证它们。像“错误:您的用户名不存在”和“错误:您当前的密码无效”
请问谁能帮我解决这个问题?
我知道我的代码很危险,所以你的安全建议值得赞赏。
非常感谢。
pass.html:
<form method="POST" action="pas.php">
<table>
<tr>
<td>Enter username:</td>
<td><input type="text" size="10" name="username"></td>
</tr>
<tr>
<td>Enter your password:</td>
<td><input type="password" size="10" name="password"></td>
</tr>
</table>
<p><input type="submit" value="Update Password">
</form>
pas.php:
<?php
session_start();
//Database Information
$dbhost = "localhost";
$dbname = "mysql";
$dbuser = "root";
$dbpass = "rootpasswd";
//Connect to database
$conn = mysql_connect ($dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
mysql_select_db($dbname, $conn) or die(mysql_error());
$username = $_POST['username'];
$password = $_POST['password'];
mysql_query("UPDATE mysql.user SET Password = PASSWORD('$password') WHERE User='$username'");
echo("Thank You. Your Password has been successfully changed.");
?>
请勿使用不推荐使用的'mysql_ *'函数。改用PDO或'mysqli_'。你的代码也很容易受到SQL注入的攻击,你不会检查用户是否被允许更改密码。 – Voitcus
使用'SET PASSWORD'来更改密码 – DevZer0
当我解决验证问题时,我会这样做。你会建议你的代码改变了安全性吗? –