2017-02-06 13 views
-1

私のコードに間違っていることを教えてもらえますか?私はエラーを見つけることができません。私の問題は、新しいパスワードがデータベースに保存されていないことです。新しいパスワードでログインすることはできません。パスワードを変更できないPHP

これは私のPHPコードです。

<?php 
session_start(); 
$uid = $_SESSION["uid"]; 

if($uid) 
{ 
    //user is logged in 
    if(isset($_POST["changepwbtn"])) 
    { 
     // check fields 
     $oldpw = $_POST['old_pw']; 
     $newpw = $_POST['new_pw']; 
     $renewpw = $_POST['c_npw']; 

     //check pw db  
     $sql = "SELECT pazzword FROM customer_info where user_id = '$uid'"; 
     $run_query = mysqli_query($con,$sql); 
     $row = mysqli_fetch_array($run_query); 
     $oldpwdb = $row['pazzword']; 

     //check pw 
     if($oldpw==$oldpwdb) 
     {  
      //check two new pw 
      if($newpw==$renewpw) 
      {  
       $query_change = mysql_query("UPDATE customer_info SET pazzword = '$newpw' WHERE user_id = '$uid'"); 
       session_destroy(); 
       die("Your password has been changed! <a href='index.php'>Return</a>");  
      } 
      else 
       die("New passwords doesn`t match!");    
     } 
     else 
      die("Old password doesn`t match"); 
    } 
    echo" ";  
} 
else 
    die("You need to log in!"); 
?> 
+2

に接続オブジェクトを渡す必要があります。多くのエラー。主な問題は、あなたのSQLはSQLインジェクションに対して脆弱ですが、2番目の大きな問題は廃止された 'mysql_ *'関数を使用していることです。 – Raptor

+0

まず、 '$ uid'はどのデータも保持していますか?あなたが好きなデータを保持するすべての変数をチェックしてください。次に、最初のクエリは 'mysqli_'を介して実行され、2番目のクエリは' mysql_'を介して実行されます。前述のRaptorのように、mysqli_ *や 'PDO'を使う方が良いでしょう。 –

+0

パスワードを暗号化しましたか? ($ oldpw == $ oldpwdb)] – SarangaR

答えて

0

あなたは非常に悪いですmysqli_query

$query_change = mysqli_query($con, "UPDATE customer_info SET pazzword = '$newpw' WHERE user_id = '$uid'"); 
関連する問題