Partage
  • Partager sur Facebook
  • Partager sur Twitter

password_verify toujours FALSE

ou est l'erreur ?

Sujet résolu
    11 octobre 2021 à 14:29:28

    Bonjour a tous,

    Je n'arrive pas a comprendre pourquoi password_verify dans mon code me retourne toujours la valeur FALSE alors que les mots de passe sont identiques.

    Apres beaucoup de recherche, je n'arrive toujours pas à trouver ou est le HIC !

    voici ma bdd et mon code et le var dumb

    Merci pour votre aide, 

    la fonction password_verify me retourne FALSE alors que les 2 mot de passe sont identiques !

    • Partager sur Facebook
    • Partager sur Twitter
      11 octobre 2021 à 14:31:28

      Bonjour,

      Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: php;">Votre code ici</pre>.

      Merci de modifier votre message d'origine en fonction.

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        11 octobre 2021 à 14:53:35 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


          11 octobre 2021 à 15:29:50

          L'INSERT est foireux sauf que tu n'en as pas donné le code malgré ma demande ?

          Tu as un modo qui t'a expressément demandé de ne pas poster de screens de tes codes mais tu continues à le faire, de plus, comme les screens sont inexploitables, je ne peux même pas faire un copier/coller de ton hash pour faire des tests de mon côté :/

          -
          Edité par julp 11 octobre 2021 à 15:30:23

          • Partager sur Facebook
          • Partager sur Twitter
            11 octobre 2021 à 15:49:05

            Désolé Julep je suis novice

            le formulaire d'inscription

            <!DOCTYPE html>
            <html>
            	<head>
            		<meta charset="utf-8">
            		<link rel="stylesheet" href="style.css"/>
            		<link rel="icon" type="image/png" sizes="16x16" href="IMG_4624.JPG">
            		<Title>Lila & Kaiou, pate a modeler 100% naturelle</Title>
            	</head>
            
            	<body>
            
            		<?php
            			include 'header.php'
            			
            		?>
            		<br><br>
            		
            
            
            <br/><br/><br/>
            		
            		<form method="POST" action="new_user.php">
            		<p>	
            			<h3>Inscription<h3> 
            			<input type="email" name="username"  placeholder="E-mail" required/><br><br>
            			<input type="password" name="password" placeholder="Mot de passe" required/><br><br>
            			<input type="submit" value="Valider" style="background-color: #FF5733" />
            		</p>
            		</form>
            <?php
            		date_default_timezone_set('Europe/Paris');
            		$today = date('Y-m-d');
            
            		if (!empty($_POST['username']) AND !empty($_POST['password']))
            		{
            			$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
            		$req = $bdd->prepare('INSERT INTO visiteur VALUES (NULL,:utilisateur, :motdepasse, :datereg)');
            
            		$username = htmlspecialchars($_POST['username']);
            		$password = htmlspecialchars($_POST['password']);
            		$password = password_hash('$password', PASSWORD_DEFAULT);
            
            		$req->bindvalue(':utilisateur',$username);
            		$req->bindvalue(':motdepasse',$password);
            		$req->bindvalue(':datereg',$today);
            		
            
            		$insertok=$req->execute();
            
            
            		if ($insertok){
            			$message= 'l\'utilisateur a bien été rajouté';
            			echo $message;
            				}
            		else
            		{
            			$message= 'Echec';
            			echo $message;
            		}
            	}
            		
            
            		//echo $message;//
            
            
            
            		?>
            		<br><a href='login2.php'><input type=button value="Connectez vous"/></a>
            
            
            	</body>
            </html>

            Le formulaire login

            <!DOCTYPE html>
            <html>
            	<head>
            		<meta charset="utf-8">
            		<link rel="stylesheet" href="style.css"/>
            		<link rel="icon" type="image/png" sizes="16x16" href="IMG_4624.JPG">
            		<Title>Lila & Kaiou, pate a modeler 100% naturelle</Title>
            	</head>
            
            	<body>
            
            		<?php
            			include 'header.php';
            			
            		?>
            
            		<br><br>
            
            	<section>
            			<form action="menu.php" method="POST">
            				<br><p><h3>Veuillez vous identifier</h3>
            				Entrez votre e-mail : <input type="email" name="username"/ required><br><br>
            				Entrez votre mot de passe : <input type="password" name="password" required/>
            		
            				
            				<input type="submit" value="Valider" />
            		
            		
            		<br><br>
            		<a href="new_user.php">Nouvel Utilisateur</a><br><br>
            			<img src="IMG_4624.JPG" alt="Kaiou" width="400" height="400" />
            			 </p>
            		</form>
            	</section>
            		
            
            	</body>
            </html>

            la verif du pass

            <!DOCTYPE html>
            <html>
            	<head>
            		<meta charset="utf-8">
            		<link rel="stylesheet" href="style.css"/>
            		<link rel="icon" type="image/png" sizes="16x16" href="IMG_4624.JPG">
            		<Title>Lila & Kaiou, pate a modeler 100% naturelle</Title>
            	</head>
            
            	<body>
            
            		<?php
            			include 'header.php'
            		?>
            		<br/><br/><br/>
            
            		<?php
            			session_start();
            
            			$username = ($_POST['username']);
            			$ppassword = ($_POST['password']);
            			
            			try
            			{
            				$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
            			}
            			catch(Exception $e)
            			{
            			        die('Erreur : '.$e->getMessage());
            			}
            
            
            			$req = $bdd->prepare('SELECT Id, Password FROM visiteur WHERE Username = ?');
            			$req->execute(array($username));
            			$resultat = $req->fetch();
            
            			if(password_verify($ppassword, $resultat['Password']))
            
            			
            			{
            				echo 'Valid ';
            			} else {
            				echo 'Not valid';
            			}
            
            			//var_dump($verif);
            			var_dump($resultat);



            • Partager sur Facebook
            • Partager sur Twitter
              11 octobre 2021 à 15:57:08

              Et on est censé faire quoi de ton screen ? Il n'apporte strictement rien !

              Le code PHP complet où tu fais ton INSERT et password_hash (avec le formulaire HTML) (ton inscription quoi).

              • Partager sur Facebook
              • Partager sur Twitter
                11 octobre 2021 à 16:01:39

                Je suis désolé Julep, je suis novice

                <?php
                			session_start();
                
                			$username = ($_POST['username']);
                			$ppassword = ($_POST['password']);
                			
                			try
                			{
                				$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
                			}
                			catch(Exception $e)
                			{
                			        die('Erreur : '.$e->getMessage());
                			}
                
                
                			$req = $bdd->prepare('SELECT Id, Password FROM visiteur WHERE Username = ?');
                			$req->execute(array($username));
                			$resultat = $req->fetch();
                
                			if(password_verify($ppassword, $resultat['Password']))
                
                			
                			{
                				echo 'Valid ';
                			} else {
                				echo 'Not valid';
                			}
                
                			//var_dump($verif);
                			var_dump($resultat);
                <!DOCTYPE html>
                <html>
                	<head>
                		<meta charset="utf-8">
                		<link rel="stylesheet" href="style.css"/>
                		<link rel="icon" type="image/png" sizes="16x16" href="IMG_4624.JPG">
                		<Title>Lila & Kaiou, pate a modeler 100% naturelle</Title>
                	</head>
                
                	<body>
                
                		<?php
                			include 'header.php';
                			
                		?>
                
                		<br><br>
                
                	<section>
                			<form action="menu.php" method="POST">
                				<br><p><h3>Veuillez vous identifier</h3>
                				Entrez votre e-mail : <input type="email" name="username"/ required><br><br>
                				Entrez votre mot de passe : <input type="password" name="password" required/>
                		
                				
                				<input type="submit" value="Valider" />
                		
                		
                		<br><br>
                		<a href="new_user.php">Nouvel Utilisateur</a><br><br>
                			<img src="IMG_4624.JPG" alt="Kaiou" width="400" height="400" />
                			 </p>
                		</form>
                	</section>
                		
                
                	</body>
                </html>
                Ajout d'utilisateur
                <!DOCTYPE html>
                <html>
                	<head>
                		<meta charset="utf-8">
                		<link rel="stylesheet" href="style.css"/>
                		<link rel="icon" type="image/png" sizes="16x16" href="IMG_4624.JPG">
                		<Title>Lila & Kaiou, pate a modeler 100% naturelle</Title>
                	</head>
                
                	<body>
                
                		<?php
                			include 'header.php'
                			
                		?>
                		<br><br>
                		
                
                
                <br/><br/><br/>
                		
                		<form method="POST" action="new_user.php">
                		<p>	
                			<h3>Inscription<h3> 
                			<input type="email" name="username"  placeholder="E-mail" required/><br><br>
                			<input type="password" name="password" placeholder="Mot de passe" required/><br><br>
                			<input type="submit" value="Valider" style="background-color: #FF5733" />
                		</p>
                		</form>
                <?php
                		date_default_timezone_set('Europe/Paris');
                		$today = date('Y-m-d');
                
                		if (!empty($_POST['username']) AND !empty($_POST['password']))
                		{
                			$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
                		$req = $bdd->prepare('INSERT INTO visiteur VALUES (NULL,:utilisateur, :motdepasse, :datereg)');
                
                		$username = htmlspecialchars($_POST['username']);
                		$password = htmlspecialchars($_POST['password']);
                		$password = password_hash('$password', PASSWORD_DEFAULT);
                
                		$req->bindvalue(':utilisateur',$username);
                		$req->bindvalue(':motdepasse',$password);
                		$req->bindvalue(':datereg',$today);
                		
                
                		$insertok=$req->execute();
                
                
                		if ($insertok){
                			$message= 'l\'utilisateur a bien été rajouté';
                			echo $message;
                				}
                		else
                		{
                			$message= 'Echec';
                			echo $message;
                		}
                	}
                		
                
                		//echo $message;//
                
                
                
                		?>
                		<br><a href='login2.php'><input type=button value="Connectez vous"/></a>
                
                
                	</body>
                </html>

                -
                Edité par KarimKeirouz1 11 octobre 2021 à 16:04:01

                • Partager sur Facebook
                • Partager sur Twitter
                  11 octobre 2021 à 16:20:50

                  @KarimKeirouz1 Je viens de retirer des spams vos messages que vous avez édité.

                  Pas de htmlspecialchars à cet endroit, c'est uniquement à l'affichage. Plus d'info ici et ici

                  Vous avez des erreurs HTML, passer votre code générer au validateur pour voir et corriger vos erreurs => https://validator.w3.org/

                  On ne place pas un input dans un lien, ce sont deux éléments interactif, c'est soit  l'un soit l'autre.

                  ¨Pas de titre dans un paragraphe qui n'accepte que du contenu phrasé.

                  Un <br> sert à créer un retour ligne dans une portion de texte pas à espacer les éléments entre eux. Donc plusieurs <br> à la suite n'a aucun sens sémantique.

                  -
                  Edité par AbcAbc6 11 octobre 2021 à 16:29:10

                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 octobre 2021 à 16:51:32

                    > password_hash('$password',

                    Le mot de passe est littéralement $password du fait des '

                    > Pas de htmlspecialchars à cet endroit, c'est uniquement à l'affichage.

                    Surtout que là, celui qui a le malheur de mettre un <, &, > ou " ne pourra jamais se connecter vu qu'il n'y avait pas de htmlspecialchars au login.

                    -
                    Edité par julp 11 octobre 2021 à 16:54:00

                    • Partager sur Facebook
                    • Partager sur Twitter
                      11 octobre 2021 à 17:40:10

                      Mille Merci !! 

                      Ca fonctionne

                      • Partager sur Facebook
                      • Partager sur Twitter

                      password_verify toujours FALSE

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown