2013-03-17 5 views
1

J'ai mis le signup.php avec le mot de passe md5 crypté et cela fonctionne bien quand je l'ai vérifié à phpmyadmin mais quand j'applique le md5 à la login.php il ne correspond pas aux mots de passe? il dit toujours mauvais mot de passe pourrait être la syntaxe, mais nous ne pouvions pas le comprendre ...md5 mots de passe ne correspondent pas

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

Il y a une différence entre [les chaînes entre guillemets entre guillemets simples et doubles en PHP] (http://www.php.net/manual/en/language .types.string.php). – Gumbo

+1

MD5 est ** cassé ** pour le hachage des mots de passe. [Voir cet article] (http://stackoverflow.com/questions/401656/secure-hash-and-salt-for-php-passwords). –

+0

Ce que vous faites est extrêmement dangereux. Vous êtes ** largement ouvert ** à l'injection SQL, et vous ** serez piraté ** si vous ne l'avez pas déjà été. Apprenez à utiliser des requêtes préparées/paramétrées avec PDO ou similaire. – Brad

Répondre

1

Je pense que la partie buggy est md5('$pass') à partir de

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

Parce que vous avez une chaîne uninterpolated là - essayez avec:

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

l'insertion fonctionne bien je viens de le mettre ici pour l'intégrité du code je suis ayant des problèmes avec le login.php la partie SELECT mais merci quand même –

+0

Je ne pense pas que la partie 'INSERT' est bien, essayez de vous connecter avec mot de passe '$ pass' pour tout utilisateur et voir si cela fonctionne –

+0

avec ce signup.php je peux signer de nouveaux utilisateurs et quand je vérifie le phpmyadmin leurs mots de passe sont cryptés md5 je pense que c'est bon mais j'ai des problèmes avec vérifier la section dans login.php –

Questions connexes