更改密码PHP MySQL

sta*_*ark 0 php mysql

我正在编写一段代码,在完成以下表单后更改数据库中的密码:

<html>
     <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Password Change</title>
     </head>
    <body>
    <h1>Change Password</h1>
   <form method="POST" action="password_change.php">
    <table>
    <tr>
   <td>Enter your UserName</td>
    <td><input type="username" size="10" name="username"></td>
    </tr>
    <tr>
    <td>Enter your existing password:</td>
    <td><input type="password" size="10" name="password"></td>
    </tr>
  <tr>
    <td>Enter your new password:</td>
    <td><input type="password" size="10" name="newpassword"></td>
    </tr>
    <tr>
   <td>Re-enter your new password:</td>
   <td><input type="password" size="10" name="confirmnewpassword"></td>
    </tr>
    </table>
    <p><input type="submit" value="Update Password">
    </form>
   <p><a href="home.php">Home</a>
   <p><a href="logout.php">Logout</a>
   </body>
    </html>  
Run Code Online (Sandbox Code Playgroud)

和PHP:

 <?php
session_start();
include 'dbconfig.php';

$username = $_POST['username'];
        $password = $_POST['password'];
        $newpassword = $_POST['newpassword'];
        $confirmnewpassword = $_POST['confirmnewpassword'];
        $result = mysql_query("SELECT password FROM user_info WHERE 
user_id='$username'");
        if(!$result)
        {
        echo "The username you entered does not exist";
        }
        else if($password!= mysql_result($result, 0))
        {
        echo "You entered an incorrect password";
        }
        if($newpassword=$confirmnewpassword)
        $sql=mysql_query("UPDATE user_info SET password='$newpassword' where 

 user_id='$username'");
        if($sql)
        {
        echo "Congratulations You have successfully changed your password";
        }
       else
        {
       echo "Passwords do not match";
       }
      ?>
Run Code Online (Sandbox Code Playgroud)

我现在遇到的问题是,当我提交提交按钮时,会将我带到此代码的只读页面.

有什么建议?

Bir*_*hah 6

初看起来我可以搞清楚你犯的几个重大错误:

如果你比较你应该使用

$newpassword == $confirmnewpassword
Run Code Online (Sandbox Code Playgroud)

并不是

$newpassword=$confirmnewpassword
Run Code Online (Sandbox Code Playgroud)

其次当你使用if..elseif ...循环格式时

if (condition)
  {
  //code to be executed if condition is true;
  }
else if (condition)
  {
 // code to be executed if condition is true;
 }
else
  {
  //code to be executed if condition is false;
 } 
Run Code Online (Sandbox Code Playgroud)

你显然错过了其中一个循环中的else部分.请更正您的语法,然后重试......