IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

md5 et formulaire de login


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 6
    Points
    6
    Par défaut md5 et formulaire de login
    Bonjour,

    Je suis entrain de créer un site avec un login/mdp.

    mon script fonctionne bien jusqu'à se que je lui demande de securiser mon mot de passe en md5.

    Plus exactement lors de la comparaison avec la base de donnée. Le mot de passe dans la base de donnée est bien "codé" et j'ai vérifié, le script code bien le mot de passe que l'utilisateur a rentré... est ces 2 code son les mêmes! mais impossible de me connecter...

    Verif.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <?php
    // Je me connecte à la base de données
    $mysqli = new mysqli("localhost", "root", "1", "user");
    if ($mysqli->connect_errno) {
    	echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    }
    //Sécurisation des données saisies
    //On vérifie que le login existe dans la table
    $login=$_POST[login];
    $pw= md5($_POST["pwd"]) ;
    $result = mysqli_query($mysqli,"SELECT * FROM user where login = $login "); 
    if ($result->num_rows == 1){ 
    	//login existant
    	//Selection du password pour le login saisi
    	if ($stmt = mysqli_prepare($mysqli,'SELECT pwd FROM user WHERE login = ?')) {
    		mysqli_stmt_bind_param($stmt, "s", $_POST['login']);
    		mysqli_stmt_execute($stmt); 
    		mysqli_stmt_bind_result($stmt, $pwd);
    		mysqli_stmt_fetch($stmt);
    		//Je vérifie que le mot de passe correspond
    		//Si le mot de passe est hashé dans la bdd, il faut appliquer ce hashage à $password dans la vérification ci-dessous
    		if ($pw == $pwd){
    		// La suite de mon code qui y sera après que je n'ai plus d'erreur et pour l'instant c'est :
    			echo "$login";
    			echo "Ouais!!!!!! J'ai plus d'érreur!!!! ( C'EST BEAU LES REVES !) " ;
    			session_start ();
    			// on enregistre les paramètres de notre visiteur comme variables de session ($login et $pwd) 
    			$_SESSION['login'] = $_POST['login'];
    			$_SESSION['pwd'] = $_POST['pwd'];
    			$_SESSION['ouvert']=true; 
    			// on redirige notre visiteur vers une page de notre section membre
    			//header ('location: accueil.php'); 
    		} 
    		else{ 
    		echo '<script language="JavaScript">alert("Mauvaisssss login!");</script>';
    			//echo '<meta http-equiv="refresh" content="0; URL=index.php">';;
    			echo "$pw";
    		}
    }
    }
    else{ 
    	echo '<script language="JavaScript">alert("Mauvais login!");</script>';
    	//echo '<meta http-equiv="refresh" content="0; URL=index.php">';; 
    echo "$pw";
    } 
    ?>
    Merci d'avance de l'aide que vous pourrez m'apporter.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Une seule requête suffit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
     
    // Je me connecte à la base de données
    $mysqli = new mysqli("localhost", "root", "1", "user");
    	if ($mysqli->connect_errno) {
    		echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    	}
     
    if (isset($_POST['pwd'], $_POST['login'])) {
     
    $pw= md5($_POST["pwd"]) ;
     
    $stmt = mysqli_prepare($mysqli,'SELECT pwd FROM user WHERE login = ?')) {
    mysqli_stmt_bind_param($stmt, "s", $_POST['login']);
    mysqli_stmt_execute($stmt); 
     
    if (mysqli_stmt_fetch($stmt)) { 
     
    	if ($pw == $pwd){
    Et pour debuguer, je t'ai deja indiqué comment faire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Merci,

    j'ai insérée ton code et j'ai eu un erreur
    Parse error: syntax error, unexpected '{' in C:\Users\Bryan\Desktop\Logiciel\verif.php on line 19
    mais je ne sais pas comment c'est possible.

    verif.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <?php
     
    // Je me connecte à la base de données
    $mysqli = new mysqli("localhost", "root", "1", "user");
    	if ($mysqli->connect_errno) {
    		echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    	}
     
    //Sécurisation des données saisies
     
     
     
     
    //On vérifie que le login existe dans la table
    if (isset($_POST['pwd'], $_POST['login'])) {
     
    $pw= md5($_POST["pwd"]) ;
     
    $stmt = mysqli_prepare($mysqli,'SELECT pwd FROM user WHERE login = ?') {
    mysqli_stmt_bind_param($stmt, "s", $_POST['login']);
    mysqli_stmt_execute($stmt); 
     
    if (mysqli_stmt_fetch($stmt)) { 
     
    	if ($pw == $pwd){		// La suite de mon code qui y sera après que je n'ai plus d'erreur et pour l'instant c'est :
    				echo "$login";
    				echo "Ouais!!!!!! J'ai plus d'érreur!!!! ( C'EST BEAU LES REVES !) " ;
    		var_dump($pw);
    echo '<br/>';
    var_dump($pwd);
    				session_start ();
    				// on enregistre les paramètres de notre visiteur comme variables de session ($login et $pwd) 
    				$_SESSION['login'] = $_POST['login'];
    				$_SESSION['pwd'] = $_POST['pwd'];
    				$_SESSION['ouvert']=true; 
     
    				// on redirige notre visiteur vers une page de notre section membre
    				//header ('location: accueil.php'); 
     
    		} 
    		else{ 
    		echo '<script language="JavaScript">alert("Mauvaisssss login!");</script>';
    				//echo '<meta http-equiv="refresh" content="0; URL=index.php">';;
    				echo "$pw";
    				var_dump($pw);
    echo '<br/>';
    var_dump($pwd);
    		}
     
    }
    }
     
    else{ 
    		echo '<script language="JavaScript">alert("Mauvais login!");</script>';
    		//echo '<meta http-equiv="refresh" content="0; URL=index.php">';; 
    echo "$pw";
    var_dump($password);
    echo '<br/>';
    var_dump($pwd);
    		} 
     
    ?>

  4. #4
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Cette accolade en fin de ligne n'a rien à faire là et il manque par contre le ";" qui termine chaque ligne.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    yes, ca va mieux merci.

    Autre question, je ne vois pas ou est défini mon

    verif.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <?php
     
    // Je me connecte à la base de données
    $mysqli = new mysqli("localhost", "root", "1", "user");
    	if ($mysqli->connect_errno) {
    		echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    	}
     
    //Sécurisation des données saisies
     
     
     
     
    //On vérifie que le login existe dans la table
    if (isset($_POST['pwd'], $_POST['login'])) {
     
    $pw= md5($_POST["pwd"]) ;
     
    $stmt = mysqli_prepare($mysqli,'SELECT pwd FROM user WHERE login = ?') ;
    mysqli_stmt_bind_param($stmt, "s", $_POST['login']);
    mysqli_stmt_execute($stmt); 
     
    if (mysqli_stmt_fetch($stmt)) { 
     
    	if ($pw == $pwd){		// La suite de mon code qui y sera après que je n'ai plus d'erreur et pour l'instant c'est :
    				echo "$login";
    				echo "Ouais!!!!!! J'ai plus d'érreur!!!! ( C'EST BEAU LES REVES !) " ;
    		var_dump($pw);
    echo '<br/>';
    var_dump($pwd);
    				session_start ();
    				// on enregistre les paramètres de notre visiteur comme variables de session ($login et $pwd) 
    				$_SESSION['login'] = $_POST['login'];
    				$_SESSION['pwd'] = $_POST['pwd'];
    				$_SESSION['ouvert']=true; 
     
    				// on redirige notre visiteur vers une page de notre section membre
    				//header ('location: accueil.php'); 
     
    		} 
    		else{ 
    		echo '<script language="JavaScript">alert("Mauvaisssss login!");</script>';
    				//echo '<meta http-equiv="refresh" content="0; URL=index.php">';;
    				echo "$pw";
    				var_dump($pw);
    echo '<br/>';
    var_dump($pwd);
    		}
     
    }
    }
     
    else{ 
    		echo '<script language="JavaScript">alert("Mauvais login!");</script>';
    		//echo '<meta http-equiv="refresh" content="0; URL=index.php">';; 
    echo "$pw";
    var_dump($password);
    echo '<br/>';
    var_dump($pwd);
    		} 
     
    ?>

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par djbryan94 Voir le message
    Autre question, je ne vois pas ou est défini mon
    Très drôle
    attends c'est ton code quand même ^^

    Il est défini dans cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $stmt = mysqli_prepare($mysqli,'SELECT pwd FROM user WHERE login = ?') ;
    Le problème c'est que tu ne récupères pas sa valeur dans les lignes qui suivent la requête...

Discussions similaires

  1. Mettre en place un formulaire de login
    Par débutant_C# dans le forum Windows Forms
    Réponses: 3
    Dernier message: 21/04/2008, 12h25
  2. Réponses: 5
    Dernier message: 18/03/2007, 10h16
  3. [phpBB] Quel page contient le formulaire du login ?
    Par soad029 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 11
    Dernier message: 21/09/2006, 19h27
  4. Réponses: 12
    Dernier message: 24/09/2003, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo