PHP,mysql密码重置不启动

时间:2013-10-07 09:00:28

标签: php mysql html5

这是新的,所以请放轻松我。我有这个简单的php页面,当你使用时,你输入你的用户名和密码。问题是我似乎无法重置它。基本背景是,数据库名为My_Details,表名为My_DetailsData。这是形式本身:

<form action="reset.php" method="post">
<p align="center">Type in below, your Username, Password and New Password to reset your       login id.</p>
<table id="form_pword_reset">
<tr><td>Username</td><td>: <input type="text" name="USERNAME" /></td></tr>
<tr><td>Password</td><td>: <input type="password" name="PASSWORD_HASH" /></td></tr>
<tr><td>New Password</td><td>: <input type="password" name="PASSWORD_RESET" /></td></tr>
<tr><td></td><td> <input type="submit" value="Reset Password" /></td></tr>
</table>
</form>

它链接到一个名为reset.php的php页面 在页面上,一切正常,除了当我在html页面上更改密码时,数据库表根本不受影响...

$db_select=mysql_select_db("My_Details",$conn) or die(mysql_error());

//Retrieving data from html form
$username = $_POST['USERNAME'];

$password = $_POST['PASSWORD_HASH'];

$password_reset = $_POST['PASSWORD_RESET'];

//for mysql injection (security reasons)

$username = mysql_real_escape_string($username);

$password = mysql_real_escape_string($password);

$password_reset = mysql_real_escape_string($password_reset);

$login = mysql_query("select*from My_DetailsData where USERNAME='$username' and  PASSWORD_HASH='$password'");

if(mysql_num_rows($login)== 1){
mysql_query($conn, "UPDATE My_DetailsData SET PASSWORD_HASH=$password_reset WHERE       USERNAME='$username' AND PASSWORD_HASH='$password'");

echo "Password Changed Successfully";


}
else{
echo "Incorrect Username or Password!";
}
mysql_close($conn);

6 个答案:

答案 0 :(得分:0)

请添加空格:

来自:

$login = mysql_query("select*from My_DetailsData where USERNAME='$username' and  PASSWORD_HASH='$password'");

到:

$login = mysql_query("select * from My_DetailsData where USERNAME='$username' and  PASSWORD_HASH='$password'");

答案 1 :(得分:0)

if(mysql_num_rows($ login)== 1){ mysql_query($ conn,“UPDATE My_DetailsData SET PASSWORD_HASH ='$ password_reset'WHERERE USERNAME ='$ username'AND PASSWORD_HASH ='$ password'”);

答案 2 :(得分:0)

<input type="submit" name="reset" value="Reset Password" />
<?php
if(isset($_POST['reset']))
{
$username = $_POST['USERNAME'];

$password = $_POST['PASSWORD_HASH'];

$password_reset = $_POST['PASSWORD_RESET'];
}
?>
Your Update code to

"UPDATE My_DetailsData SET PASSWORD_HASH='".$password_reset."' WHERE USERNAME='".$username."' AND PASSWORD_HASH='".$password."'");

答案 3 :(得分:0)

$password_reset = md5($$password_reset);
    $update = mysql_query("UPDATE My_DetailsData SET password_hash ='$password_reset ' WHERE username = '$username' ");

答案 4 :(得分:0)

您似乎错过了SET column ='{value}'

的引号
 <?php
$conn = mysql_connect('localhost','root','');
$db_select=mysql_select_db("My_Details",$conn) or die(mysql_error());

//Retrieving data from html form
$username = $_POST['USERNAME'];

$password = $_POST['PASSWORD_HASH'];

$password_reset = $_POST['PASSWORD_RESET'];

//for mysql injection (security reasons)

$username = mysql_real_escape_string($username);

$password = mysql_real_escape_string($password);

$password_reset = mysql_real_escape_string($password_reset);

$login = mysql_query("select * from My_DetailsData where USERNAME='$username' and  PASSWORD_HASH='$password'");

if(mysql_num_rows($login)== 1){
mysql_query($conn, "UPDATE My_DetailsData SET PASSWORD_HASH=$password_reset WHERE       USERNAME='$username' AND PASSWORD_HASH='$password'");
echo "UPDATE My_DetailsData SET 'PASSWORD_HASH`='$password_reset' WHERE       USERNAME='$username' AND PASSWORD_HASH='$password'";
echo "Password Changed Successfully";


}
else{
echo "Incorrect Username or Password!";
}
mysql_close($conn);

答案 5 :(得分:-1)

试试这个:

UPDATE My_DetailsData SET PASSWORD_HASH='$password_reset' WHERE USERNAME='$username' AND PASSWORD_HASH='$password'
                                        ^missing quotes ^