merci de ton conseil, je crois avoir corriger mon erreur (pourrait tu me dire si c'est sa), j'ai modifié la comparaison avec $resultat (ligne 26) bonne nuit :
<!DOCTYPE html>
<html>
<head>
<title>connexions</title>
</head>
<body>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', 'root');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$pass = $_POST['pass'];
// Récupération de l'utilisateur et de son pass hashé
$req = $bdd->prepare('SELECT id, nom, prenom, pass FROM membres WHERE nom = :nom AND prenom = :prenom AND pass = :pass');
$req->execute(array(
'nom' => $nom,
'prenom' => $prenom,
'pass' => $pass));
$isPasswordCorrect = password_verify($_POST['pass'], $resultat = $req->fetch()['pass']);
// Comparaison du pass envoyé via le formulaire avec la base
if (!$resultat)
{
session_start();
$_SESSION['id'] = $resultat['id'];
$_SESSION['nom'] = $nom;
$_SESSION['prenom'] = $prenom;
echo 'Vous êtes connecté !';
?>
<form method="post" action="deconnexions.php">
<input type="submit" value="déconnexion" name="deconnexions.php">
</form><br>
<p>
<a href="voir_clients.php">voir mes clients </a></p>
<p>inscrire un nouveaux client
<a href="new_client.php">oui</a></p>
<?php
}
else
{
echo 'Mauvais identifiant ou mot de passe !';
}
?>
</body>
</html>
Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.
Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).
De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.
Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.
Pour modifier votre titre, éditez le premier message de votre sujet.
(titre originel : variables)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
sa fais plusieurs fois que je fais tes conseils mais sa ne marche pas (même en mettant le mauvais mot de passe il se connecte comme tu me l'avais dis )
merci d'avance
voici un des test de mon code :
<!DOCTYPE html>
<html>
<head>
<title>connexions</title>
</head>
<body>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', 'root');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$pass = $_POST['pass'];
// Récupération de l'utilisateur et de son pass hashé
$req = $bdd->prepare('SELECT id, nom, prenom, pass FROM membres WHERE nom = :nom AND prenom = :prenom AND pass = :pass');
$req->execute(array(
'nom' => $nom,
'prenom' => $prenom,
'pass' => $pass));
$resultat = $req->fetch();;
$isPasswordCorrect = password_verify($_POST['pass'], $resultat['pass']);
if (!$resultat = $req->fetch())
{
$isPasswordCorrect = password_verify($_POST['pass'], $resultat['pass']);
session_start();
$_SESSION['id'] = $resultat['id'];
$_SESSION['nom'] = $nom;
$_SESSION['prenom'] = $prenom;
echo 'Vous êtes connecté !';
?>
<form method="post" action="deconnexions.php">
<input type="submit" value="déconnexion" name="deconnexions.php">
</form><br>
<p>
<a href="voir_clients.php">voir mes clients </a></p>
<p>inscrire un nouveaux client
<a href="new_client.php">oui</a></p>
<?php
}
else
{
$isPasswordCorrect = password_verify($_POST['pass'], $resultat['pass']);
echo 'Mauvais identifiant ou mot de passe !';
}
?>
</body>
</html>
je suis désolé je suis débutant et je ne vois pas ou tu veux en venir , je comprends que :
- il faut faire un isset() sur les $_POST et mettre en condition (à la place de !$resultat) !empty()
- les mots de passe seront tester dans les boucles est mettre que $resultat = $req->fetch()
voici un petit test (désolé de ne pas comprendre ) :
<!DOCTYPE html>
<html>
<head>
<title>connexions</title>
</head>
<body>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', 'root');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$pass = $_POST['pass'];
if (isset($_POST['nom']))
{
//verification
// Récupération de l'utilisateur et de son pass hashé
$req = $bdd->prepare('SELECT id, pass FROM personne_physique WHERE nom = :nom AND prenom = :prenom AND pass = :pass');
$req->execute(array(
'nom' => $nom,
'prenom' => $prenom,
'pass' => $pass));
}
$resultat= $req->fetch();
$isPasswordCorrect = password_hash($_POST['pass'], PASSWORD_DEFAULT);
// Comparaison du pass envoyé via le formulaire avec la base
if ($_POST['pass'] != $resultat)
{
$isPasswordCorrect = password_verify($_POST['pass'] ,$resultat = $req->fetch());
echo 'Mauvais identifiant ou mot de passe !';
}
elseif ($_POST['pass'] == $isPasswordCorrect)
{
$isPasswordCorrect = password_verify($_POST['pass'] ,$resultat = $req->fetch());
session_start();
$_SESSION['id'] = $resultat['id'];
$_SESSION['nom'] = $nom;
$_SESSION['prenom'] = $prenom;
echo 'Vous êtes connecté !';
?>
<form method="post" action="deconnexions.php">
<input type="submit" value="déconnexion" name="deconnexions.php">
</form><br>
<p>
<a href="voir_clients.php">voir mes clients </a></p>
<p>inscrire un nouveaux client
<a href="new_client.php">oui</a></p>
<?php
}
?>
</body>
</html>
Erreur dans la déclaration de variables
× 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.
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP