<?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>
コードは http://blog.csdn.net/qazcxh/article/details/45726911 に従って書かれています。問題は、間違ったパスワードを入力すると、パスワードが間違っているというプロンプトが表示されることです。データベースは新しいものに更新されます。パスワード、変更方法を教えてください
コンテンツを表示した後、PHP プログラムは、die()、exit() などの終了に遭遇するか、実行が完了するまで実行を続けます。
問題に対処するには2つの方法があります
1.判定の後にdieを追加します
2.判定の後のコードをelseに入れます
if ($oldpassword!=$dbpassword) {
<script type="text/javascript">
window.location.href="changepasswd; .html";
</script>
<?php
mysql_query ( "update t_account setpassword='{$newpassword}' where username='{$username}'" ) or die ( "データベースを保存失敗しました" . mysql_error ());//上記のユーザー名とパスワードが適切に決定されたら、データベースに更新します
}
mysql_close ( $con );
?>
最も簡単な方法は、
パスワード判定でパスワードが間違っていると判断した後、dieを追加してプログラムを終了することです