Erreur systématique dans formulaire login

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Erreur systématique dans formulaire login

par Stef » 05 sept. 2008, 14:43

Merci à tous!! c'est cool :wink:

par doctorrock » 05 sept. 2008, 13:49

32 le md5, 32 8-)

par Stef » 05 sept. 2008, 12:56

Je pense que ça doit être ça... j'avais mis un varchar 30 pour le champ mdp.

par guilt92 » 05 sept. 2008, 12:50

C'est pas plutot ton insertion en base qui est erronée ? tu as pas un nombre limite de caractère dans ton champ mot de passe qui aurait coupé le mdp ?

Comment as tu fait l insertion des mdp en base ?

par Stef » 05 sept. 2008, 12:26

Pour:
echo $data['mdp']; echo '<br />';
				echo $password;   echo '<br />';
				echo md5($password); echo '<br />';
voilà les réponses:

81dc9bdb52d04dc20036dbd8313ed0
1234
81dc9bdb52d04dc20036dbd8313ed055

Et voilà le mdp tel qu'encodé dans la table:

81dc9bdb52d04dc20036dbd8313ed0

Je suis très désappointé... pourquoi l'ajout de ces 2 caractères sur le md5($passowrd)?

par @rthur » 05 sept. 2008, 12:19

Bonjour,

Fait un echo de $data['mdp'], $password et md5($password) pour t'assurer que tes conditions soient bien validées

par guilt92 » 05 sept. 2008, 12:16

Question stupide : tes mots de passe ont bien été entrés en md5 dans la base ? :)

Aussi tu pourrais te passer du mysql_fetch_assoc et faire directement :
$pseudo = mysql_real_escape_string($_POST['nom']); 
        $password = mysql_real_escape_string($_POST['mdp']); 

        $requete = mysql_query('SELECT nom
        FROM mb_users WHERE nom = "'.$pseudo.'" AND mdp = "'.md5($password).'"'); 
        or die (mysql_error()); 
        if (mysql_num_rows($requete)) // Acces OK ! 
Ca change pas grand chose mais ca évite une opération de traitement ;)

Erreur systématique dans formulaire login

par Stef » 05 sept. 2008, 12:04

Bonjour chers phpiens et phpiennes (y en a?)!!

J'ai un fichier php de traitement de formulaire de login qui ne fonctionne pas, j'ai essayé plein de truc différent, rien à faire:
<?php
session_start();

// Message

if (empty($_POST['nom']) || empty($_POST['mdp']) ) //Oublie d'un champ
{
        $message = '<h3>Erreur</h3>
		<p>Une erreur s\'est produite pendant ton authentification.
        Tous les champs doivent être rempli!<br />
        <a href="connect.php">Retourner</a> au formulaire</p>';
}
else
{
        //Acces interdit : le membre est déjà connecté
        if (isset($_SESSION['nom']))
        {
                $message ='<p>Tu es déjà connecté...</p>';
        }
        else // Autorisation ok : il reste à voir le mot de passe
        {
        include("includes/db.php");
        mysql_connect($host, $root, $mdp);
        mysql_select_db($db);


        //On protège les données
        $pseudo = mysql_real_escape_string($_POST['nom']);
        $password = mysql_real_escape_string($_POST['mdp']);

        $requete = mysql_query('SELECT mdp
        FROM mb_users WHERE nom = "'.$pseudo.'"')
        or die (mysql_error());
        $data = mysql_fetch_assoc($requete);

        if ($data['mdp'] == md5($password)) // Acces OK !
        {

                $_SESSION['nom'] = $pseudo;

                $message = '<h3>Bienvenue '.stripslashes(htmlspecialchars($_SESSION['nom'])).'</h3>
                <p>Tu es maintenant connecté!</p>';

         }
         else // Acces pas OK !
         {
                $message = '<h3>Erreur<h3><p>Une erreur s est produite
                pendant ton authentification.
                Le mot de passe ou le pseudo entré n\'est pas correcte.</p>
                <p>Revenir au <a href="connect.php">formulaire d\'identification</a>.</p>';
          }
       }
}

$titre = "Music*boX v.3 :: connection +";
include ('includes/top.php');
?>
Il passe systématiquement sur le dernier else bien que le pseudo et le mdp soit correct... Je ne comprends vraiment pas pourquoi!
Que faire?