2013-03-17 2 views
1

Я установил signup.php с паролем md5 зашифрованным, и он работает нормально, когда я проверил его на phpmyadmin, но когда я применяю md5 к login.php, он не соответствует паролям? он говорит, что всегда неверный пароль может быть синтаксис, но не мог понять его ...md5 пароли не совпадают

signup.php

if (isset($_POST['user'])) 
{ 
    $user = sanitizeString($_POST['user']); 
    $pass = sanitizeString($_POST['pass']); 

    if ($user == "" || $pass == "") 
     $error = "Not all fields were entered<br /><br />"; 
    else 
    { 
     if (mysql_num_rows(queryMysql("SELECT * FROM members 
       WHERE user='$user'"))) 
      $error = "That username already exists<br /><br />"; 
     else 
      { 
      queryMysql("INSERT INTO members VALUES('$user', '".md5('$pass')."')"); 
      die("<h4>Account created</h4>Please Log in.<br /><br />"); 
     } 
    } 
} 

login.php

if(isset($_POST['user'])) { 
    $user = sanitizeString($_POST['user']); 
    $pass = sanitizeString($_POST['pass']); 

    if ($user == "" || $pass == "") { 
    $error = "Not all fields were entered<br />"; 
    } else { 
     $query = "SELECT user,pass FROM members WHERE user = '$user' AND pass = \'\".md5('$pass').\"\'"; 

     if(mysql_num_rows(queryMysql($query)) == 0) { 
      $error = "<span class='error'>Username/Password invalid</span><br /><br />"; 
     } else { 
      $_SESSION['user'] = $user; 
      $_SESSION['pass'] = $pass; 
      die("You are now logged in. Please <a href='society.php?view=$user'>" . 
       "click here</a> to continue.<br /><br />"); 
      } 
     } 
    } 
+4

Существует разница между [одинарной кавычками, и в двойных кавычках строки в PHP] (http://www.php.net/manual/en/language .types.string.php). – Gumbo

+1

MD5 ** сломан ** для хеширования паролей. [См. Это сообщение] (http://stackoverflow.com/questions/401656/secure-hash-and-salt-for-php-passwords). –

+0

То, что вы делаете, чрезвычайно опасно. Вы ** широко открыты ** для SQL-инъекции, и вы ** будете взломаны **, если вы еще не были. Научитесь использовать подготовленные/параметризованные запросы с PDO или аналогичными. – Brad

ответ

1

Я думаю, что глючит часть is md5('$pass') от

queryMysql("INSERT INTO members VALUES('$user', '".md5('$pass')."')"); 

Потому что у вас есть uninterpolated строки там - попробуйте:

queryMysql("INSERT INTO members VALUES('$user', '".md5($pass)."')"); 
+0

вставляющие работы отлично, я просто положил его сюда для целостности кода. У меня проблемы с login.php, но SELECT часть, но спасибо в любом случае –

+0

Я не думаю, что часть 'INSERT' в порядке, попробуйте войти в систему с паролем '$ pass' для любого пользователя и посмотреть, работает ли это –

+0

с этим signup.php, я могу подписывать новых пользователей, и когда я проверяю phpmyadmin, их пароли зашифрованы в md5. Я думаю, что это хорошо, но у меня проблемы с проверкой в ​​login.php –

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