7977 sujets

Développement web côté serveur, CMS

Bonsoir à tous,

Je me suis lancer dans le projet de codé un crm pour ma société.
J'ai un petit soucis avec le code... Smiley confus
Je vous expliques !
dans la Bdd tout se passe bien, j'ai fais mon user niquel, je tente de me connecter du coup et la impossible.
Si quelqu'un aurait le temps de jeté un petit coup d’œil car je vous avoues que je trouves pas et sa fait plusieurs heure que je suis dessus.

<?php
session_start();
	if(isset($_POST['submit']))
	{
	$pseudo=htmlentities(trim($_POST['pseudo']));
	$mdp=htmlentities(trim($_POST['mdp']));

		if($pseudo&&$mdp)
		{
			$mdp = md5($mdp);
			$sql =mysqli_connect('localhost','root','','vip_pro_crm')or die ('Error');
			
			$query =mysqli_query($sql,"SELECT * FROM utilisateur WHERE pseudo='$pseudo'&&mdp='$mdp'");
			$rows =mysqli_num_rows($query);
			if($rows==1)
			{
			$_SESSION['pseudo']=$pseudo;
			header("location:membre.php");
			}else echo "Utilisateur ou mot de passe incorrecte !!";
		}
	}
?>
<form method="POST" action="login.php">
<p>Pseudo : </p>
<input type="text" name="pseudo">
<p>Mot de passe : </p>
<input type="password" name="mdp">
<input type="submit" value="Connexion" name="submit">
</form>
Bonjour,
A mon avis il faut avoir uniquement le pseudo dans le WHERE, et ensuite vérifier que le mdp saisi correspond bien à celui en BDD pour valider la connexion. Par contre, pour vérifier ça, il faut utiliser la fonction
$test = password_verify($mot_de_passe_saisi,$mot_de_passe_en_BDD)
Et pour que ça fonctionne, le hash du mot de passe à la création de l'utilisateur doit être fait avec cette fonction:
$pass_a_mettre_en_BDD = password_hash($mot_de_passe_saisi, PASSWORD_DEFAULT); 


Sinon, une remarque à part... Pour accéder à ta BDD, renseignes toi sur les requêtes préparées et PDO, tu as beaucoup à y gagner, surtout au niveau sécurité!
Salut

SELECT * FROM utilisateur WHERE pseudo='$pseudo'&&mdp='$mdp'

le "ET" en SQL c'est AND... pas "&&"

SELECT *
FROM utilisateur
WHERE pseudo='$pseudo'
AND mdp='$mdp'
Modifié par JENCAL (12 Nov 2019 - 11:03)
JENCAL a écrit :
le "ET" en SQL c'est AND... pas "&&"

Purée j'ai même pas vu ça! Je fais trop de PHP^^
Modifié par Mathieu8337 (12 Nov 2019 - 11:55)