2017-02-06 3 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 Injection, а вторая главная проблема заключается в том, что вы используете устаревшие функции mysql_ *. – Raptor

+0

Во-первых, вы уверены, что '' uid' содержит какие-либо данные? Проверьте все переменные, которые хранят данные, которые вам нравятся, - если они это сделают, то все это связано с запросами. Во-вторых, ваш первый запрос выполняется через mysqli_, а второй - через mysql_. Как упоминалось выше, Raptor лучше использовать 'mysqli_ *' или 'PDO'. –

+0

Вы зашифровали свой пароль? если это условие не возвращает истинное значение, поэтому ваш запрос на обновление не будет выполнен [if ($ oldpw == $ oldpwdb)] – SarangaR

ответ

0

вы должны передать объект подключения к mysqli_query

$query_change = mysqli_query($con, "UPDATE customer_info SET pazzword = '$newpw' WHERE user_id = '$uid'"); 
Смежные вопросы