在php中更改密码html表单

时间:2013-12-10 20:53:47

标签: php html mysql mysqli

我试图创建一个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

3 个答案:

答案 0 :(得分:2)

第12行的

$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'");