2016-03-01 159 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>"; 
       } 
     } 
?> 

使用一些文本编辑器,如升华和任何一个。