probleme identification client avec mot de passe

probleme identification client avec mot de passe - PHP - Programmation

Marsh Posté le 07-11-2008 à 11:29:32    

Bonjour, je suis entrain de réaliser une identification des utilisateurs et en fait, quand j'essaye de m'identifié, il me dit que le mot de passe est faux alors que c'est le bon. Donc ducoup; je n'arrive pas à accéder a la page protégée. Voici le code ou sa beug:
 
 
$cxn = Connect_to_db("Vars.inc" );
        $sql = "SELECT user_name FROM $table_name
              WHERE user_name='$_POST[fusername]'";
        $result = mysqli_query($cxn, $sql) or die("Exécution requête 1 impossible" );
        $num = mysqli_num_rows($result);
        if ($num == 1) {
            $sql = "SELECT user_name FROM $table_name
                 WHERE user_name='$_POST[fusername]'
                 AND password=md5('$_POST[fpassword]')";
            $result2 = mysqli_query($cxn, $sql) or die("Exécution requête 2 impossible." );
            $row = mysqli_fetch_assoc($result2);
            if ($row) {
                $_SESSION['auth'] = "yes";
                $_SESSION['logname'] = $_POST['fusername'];
                header("Location: $next_program" );
            } else {
                $message_1 = "Le nom d'utilisateur '$_POST[fusername]' existe mais vous n'avez pas entré le bon mot de passe !                             Réessayez.<br>";
                extract($_POST);
                include ("fields_login.inc" );
                include ("double_form.inc" );
            }
 
 
je ne vois pas du tout d'ou cela peut provenir
merci d'avance pour votre aide

Reply

Marsh Posté le 07-11-2008 à 11:29:32   

Reply

Marsh Posté le 07-11-2008 à 11:49:29    

1) Les indices dans $_POST sont des chaines de caractères, pas des constantes
2) Pourquoi faire deux requêtes alors qu'une seule est suffisante?
3) Niveau sécurité, c'est zéro.
4) tu as essayé d'afficher le contenu de POST pour voir si c'est bien ce que tu attends?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 07-11-2008 à 11:56:30    

la sécurité, pour l'instant ce n'est pas mon soucis principal.
Pour les 2 requetes, je vais essayé de n'en faire qu'une seule
et je vais voir pour POST
post contient :
Array
(
    [fusername] => aa
    [fpassword] => aa
    [Button] => Identification
)
 
cela est correct car je fais des essais avec comme nom d'utilisateur aa et comme mot de passe aa


Message édité par izmir le 07-11-2008 à 12:04:50
Reply

Marsh Posté le 07-11-2008 à 12:42:55    

Pour info il ne faut jamais dire si c'est le login ou le mot de passe qui est erroné il faut juste dire que l'un des deux n'es pas correct car cela evite que quelqu'un te lance un robot bruteforce sur le login


---------------
Recette cookeo Recette de cuisine
Reply

Marsh Posté le 07-11-2008 à 13:51:11    

dacor je changerais sa, mais je ne vois toujours pas ce qui peut bloqué, car le mot de passe que je rentre est normalement valide

Reply

Marsh Posté le 07-11-2008 à 14:09:11    

Affiche md5('aa') et compare avec ce que tu as dans ta table...et montre ton code si tu l'as modifié.


Message édité par skeye le 07-11-2008 à 14:09:22

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 07-11-2008 à 14:47:20    

merci skeye, g réussi grace à toi a trouver mon erreur, en fait j'avais pas spécifié assez de caractere dans mysql pour le mot de passe. Donc en fait il ne me stocké qu'une partie du mot de passe.
Merci beaucoup pour votre aide a tous, surtout a toi skeye

Reply

Marsh Posté le 07-11-2008 à 14:51:38    

un md5 c'est 32 caractères, pas un de plus pas un de moins ;)


Message édité par skeye le 07-11-2008 à 14:51:46

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 07-11-2008 à 14:56:56    

ben ouai mais comme un ***, j'avais mis 8 au lieu de 32. Surement une erreur d'inatention

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed