<?php session_start (); $username = $_REQUEST ["username"]; $oldpassword = $_REQUEST ["oldpassword"]; $newpassword = $_REQUEST ["newpassword"]; $con = mysql_connect ( "localhost", "root", "root" ); if (! $con) { die ( '数据库连接失败' . $mysql_error () ); } mysql_select_db("mtdb",$con); $dbusername = null; $dbpassword = null; $result = mysql_query ( "select * from t_account where username ='{$username}'" ); while ( $row = mysql_fetch_array ( $result ) ) { $dbusername = $row ["username"]; $dbpassword = $row ["password"]; } if (is_null ( $dbusername )) { ?> <script type="text/javascript"> alert("用户名不存在"); window.location.href="changepasswd.html"; </script> <?php } if ($oldpassword!=$dbpassword) { ?> <script type="text/javascript"> alert("密码错误"); window.location.href="changepasswd.html"; </script> <?php } mysql_query ( "update t_account set password='{$newpassword}' where username='{$username}'" ) or die ( "存入数据库失败" . mysql_error () );//如果上述用户名密码判定不错,则update进数据库中 mysql_close ( $con ); ?> <script type="text/javascript"> alert("密码修改成功"); window.location.href="changepasswd.html"; </script>
Der Code ist gemäß http://blog.csdn.net/qazcxh/article/details/45726911 geschrieben. Das Problem besteht nun darin, dass nach Eingabe des falschen Passworts angezeigt wird, dass das Passwort falsch ist, die Datenbank jedoch Aktualisieren Sie das neue Passwort. Bitte sagen Sie mir, wie ich es ändern kann
php程序在显示内容之后,依然会继续执行,一直到碰到die()、exit()之类的终止或者一直到执行完。
所以处理你的问题有两种方法
1.判断之后加die
2.把判断之后的代码放到else里面
if ($oldpassword!=$dbpassword) {
?>
<script type="text/javascript">
alert("密码错误");
window.location.href="changepasswd.html";
</script>
<?php
mysql_query ( "update t_account set password='{$newpassword}' where username='{$username}'" ) or die ( "存入数据库失败" . mysql_error () );//如果上述用户名密码判定不错,则update进数据库中
}
mysql_close ( $con );
?>
最简单的方法就是
在密码判断内判断密码错误之后 加die;终止程序