2016-03-01 133 views
-2

嗨,我只是一個新的程序員你可以幫我這個, 我不能改變密碼,並繼續說回聲「密碼更改成功」的錯誤;更改舊密碼

請幫幫我。 謝謝。

<?php 

if(isset($_POST["login"])) 

    { 

     if(!empty($_POST['oldpass']) && !empty($_POST['password'])) 
      { 
       $oldp=$_POST['oldpass']; 



       // connection 
       $con=mysqli_connect('localhost','root','') or die(mysqli_error()); 
       mysqli_select_db($con,'databaseprac') or die("cannot select DB"); 

       // select database 
       $query=mysqli_query($con,"SELECT * FROM tblusers WHERE password='".$oldp."'"); 
       $numrows=mysqli_num_rows($query); 




       if($numrows!=0) 
       { 
        while($row=mysqli_fetch_assoc($query)) 
       { 
        $dbpassword=$row['password']; 


        //mysqli_close() 
        } 

        if($oldp == $dbpassword) 
        { 

        $sql="UPDATE tblusers SET password='$oldp' WHERE id='1'; 
         $result=mysqli_query($sql); 
         if($result) 
         { 
         echo "<h4>Password Change Successful</h4>"; 
         } 
        } 
        } 
        else { 
         echo "<h4>Invalid Old Password</h4>"; 
        } 

      } 

        else { 
         echo "<h4>All fields are required.</h4>"; 
        } 
      } 
?> 
+0

\ * sigh \ *強制性的,您的代碼是SQL注入,註釋。 –

回答

1

有沒有"這句話結束: $sql="UPDATE tblusers SET password='$oldp' WHERE id='1';

還需要添加$con這一行: $result=mysqli_query($sql); 這樣的: $result=mysqli_query($con,$sql);

+0

更不用說轉義或參數綁定了。 –

+0

謝謝先生。 – VinceGraphic

1

你錯過了"

$sql="UPDATE tblusers SET password='$oldp' WHERE id='1'; 

提示:應防止MySQL Injection

$oldp = mysqli_real_escape_string ($con, $row['oldpass']); 

$dbpassword = mysqli_real_escape_string ($con, $row['password']); 
+0

@VinceGraphic不客氣,也許接受最好的答案,如果它通過點擊勾號標記幫助你 – Panda

0

替換您如下代碼:

$sql="UPDATE tblusers SET password='$oldp' WHERE id='1'; 
$result=mysqli_query($sql); 

$oldp = mysqli_real_escape_string ($con, $row['oldpass']); 
$sql="UPDATE tblusers SET password='$oldp' WHERE id='1'"; 
$result=mysqli_query($con,$sql); 
  1. 你錯過了"
  2. 您未傳遞連接字符串。
+0

更不用說逃避或參數綁定。 –

0

這裏是你的代碼完全工作。

<?php 
    if(isset($_POST["login"])) 
    { 
     if(!empty($_POST['oldpass']) && !empty($_POST['password'])) 
     { 
      $oldp=$_POST['oldpass']; 
      $newPassword=$_POST['password']; 
      echo $oldp." ".$newPassword; 
      // connection 
      $con=mysqli_connect('localhost','root','suryabhan') or die(mysqli_error()); 
      mysqli_select_db($con,'databaseprac') or die("cannot select DB"); 

      // select database 
      $query=mysqli_query($con,"SELECT * FROM tblusers WHERE password='".$oldp."';"); 
      $numrows=mysqli_num_rows($query); 


      if($numrows!=0) 
      { 

       $dbpassword; 
       while($row=mysqli_fetch_assoc($query)) 
      { 
       $dbpassword=$row['password']; 
       echo"password from db:".$dbpassword; 

       //mysqli_close() 
       } 

       if($oldp == $dbpassword) 
       { 
        echo"old and new matches"; 
        $sql="UPDATE tblusers SET password='$newPassword'WHERE id='1';"; 
        $result1=mysqli_query($con,$sql); 
        if($result1) 
        { 
        echo"<h4>Password Change Successful</h4>"; 
        } 
        else{echo "failed";} 
       } 
       } 
       else { 
        echo"<h4>Invalid Old Password</h4>"; 
       } 

     } 

       else { 
        echo "<h4>All fields are required.</h4>"; 
       } 
     } 
?> 

使用一些文本編輯器,如昇華和任何一個。