搜尋

首頁  >  問答  >  主體

PHP改密系統,輸入錯誤密碼後還是被更改

<?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這裡寫的,現在的問題是,輸入錯誤的密碼後,會提示密碼錯誤,但是資料庫會更新新的密碼,請教各位怎麼修改

#
**哥是标准身材。**哥是标准身材。2460 天前1302

全部回覆(7)我來回復

  • 段旭涛

    段旭涛2018-03-07 11:04:41

    php程式在顯示內容之後,還是會繼續執行,一直到碰到die()、exit()之類的終止或一直到執行完。
    所以處理你的問題有兩種方法

    1.判斷之後加上die
    2.把判斷之後的程式碼放到else裡面

    回覆
    0
  • **哥是标准身材。

    是的,是在判斷後加上了die就處理好了,剛開始學習PHP,多幾個IF就感覺有點看不過來了。 CSDN的文章怎麼這麼不嚴謹,都沒實際去測試就放上來我也是醉了,幸好沒造成太大損失。 。

    **哥是标准身材。 · 2018-03-07 11:08:36
  • 66

    662018-03-06 16:39:58

     if ($oldpassword!=$dbpassword) { 

        ?> 

      <script type="text/javascript"> 錯誤"); 

    window.location.href="changepasswd.html"; 

      </script> 

    #  <?php 

    #mysql_query ( "update t_account set password='{$newpassword}' where username='{$username}'" ) or die ( "存入資料庫失敗" . mysql_err update進資料庫中 

      }    

      mysql_close ( $con ); 

    ## ?>##r? #

    回覆
    0
  • **哥是标准身材。

    照你說的,放進去了,還是這樣- -

    **哥是标准身材。 · 2018-03-06 17:52:43
    **哥是标准身材。

    感謝,已經按照1樓大神的辦法處理好了~!

    **哥是标准身材。 · 2018-03-06 18:18:16
  • 炎

    2018-03-06 16:33:46

    最簡單的方法就是

    在密碼判斷內判斷密碼錯誤之後 加die;終止程式

    回覆
    0
  • **哥是标准身材。

    感謝,已經處理好了~!

    **哥是标准身材。 · 2018-03-06 18:18:04
    炎

    不用客氣

    · 2018-03-07 09:10:20
  • 取消回覆