2015-03-03 4 views
-7

отформатированный код:

<?php 
     require_once 'connectvars.php'; 

     if (isset($_POST['submit'])) { 
      //set vars 
      $oldpw = mysqli_real_escape_string($dbc, trim($_POST['oldpw'])); 
      $newpw = mysqli_real_escape_string($dbc, trim($_POST['newpw'])); 
      $retype = mysqli_real_escape_string($dbc, trim($_POST['retype'])); 

      $query = mysqli_query($dbc, 'SELECT password from user_info WHERE password = "hash(\'SHA256\',$oldpw)" and user_id = "$SESSION[\'user_id\']"'); // this line is "not working well" 

      if (strlen($newpw) < 7) { 
       if (strlen($newpw) > 32) { 
        if (mysqli_num_row($query) == 1) { 
         if ($newpw == $retype) { 
          mysqli_query($dbc, "UPDATE user_info SET password = 'hash('SHA256',$newpw)'"); 
          $msg = "You successfully changed your password"; 
         } 
         else { 
          $msg = "Your old password doesn't match."; 
         } 
        } 
        else { 
         $msg = "You must enter your old password correct."; 
        } 
       } 
       else { 
        $msg = "Your password must contain 32 characters or less."; 
       } 
      } 
      else { 
       $msg = "Your new password must contain at least 7 characters."; 
      } 

    ?> 
+0

Что это? - Я просто отметил. Его непонятно ... – bcesars

+0

попробуйте лучше форматировать свой вопрос в первую очередь .... –

+1

Кроме того, вам нужно написать свою проблему НЕ ТОЛЬКО ПОСЛЕ ВАШЕГО КОДА. – bcesars

ответ

0

Я думаю, что вы хотите улучшить свой синтаксис SQL.

'SELECT password 
    from user_info 
    WHERE password = "hash(\'SHA256\',$oldpw)" 
    and user_id = "$SESSION[\'user_id\']"' 

могут быть исправлены на

"SELECT password 
    from user_info 
    WHERE password = '" . hash('SHA256',$oldpw) ."' 
    and user_id = '" . $_SESSION['user_id'] . "'" 

для propperly избежать строки. Попытайтесь исправить свою инструкцию обновления так же.

+1

Слишком много синтаксических ошибок в коде OP, и это едва покрывает его. Кроме того, вы сделали ту же ошибку синтаксиса с суперглобальной переменной сеанса, как это делал OP. –

+0

Скопировано это, исправлено that.and вы правы. Thanx. Он хотел, чтобы его запрос был решен, и я сделал это, я больше не буду тратить больше времени. – Daniel

+0

Мне также интересно, начали ли они сеанс. Тем не менее, этот фрагмент кода, который я видел, часто циркулирует в Stack. Они вытаскивают Q и A из Stack и пытаются сделать это самостоятельно. Не вопрос, на который я хотел ответить, это точно. Но ... посмотрим, что должен сказать OP, * cheers * –

Смежные вопросы