Je soumets à votre sagacité mon problème du jour...
J'ai un formulaire d'identification qui fait des siennes.
J'explique: Soit il me renvoie l'information:
Soit il me renvoie le message :Il y a au moins une erreur dans une saisie. Veuillez recommencer, svp.
En faisant un echo de $data['mdp'] et md5($_POST['password']) j'ai bien les mêmes résultats, ce qui est plutôt encourageant.Problème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion. Prévenir le webmaster.
Pire: Quand je ne conserve qu'un id dans ma base, là, pas de problème, il m'identifie bien et passe à l'étape suivante...
Voici le code concerné:
<?php
include ('includes/connect.inc.php');
//code d'identification client
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']))
{
if ((isset($_POST['email']) && !empty($_POST['email'])) && (isset($_POST['password']) && !empty($_POST['password'])))
{
$sql = "SELECT * FROM clients WHERE email='".mysql_real_escape_string($_POST['email'])."' AND mdp= '" .(mysql_real_escape_string(md5($_POST['password'])))."' ";
$req = mysql_query($sql) or die ('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
echo $data['mdp'];
echo '<br />';
echo md5($_POST['password']);
echo '<br />';
echo $data['email'];
mysql_free_result($req);
mysql_close();
//si réponse, alors membre
if($data[0] == 1)
{
session_start();
$_SESSION['email'] = $_POST['email'];
$_SESSION['mdp'] = $_POST['mdp'];
$bravo = "<p> Bonjour ".$_SESSION['prenom']." ".$_SESSION['nom']."<br /><br />
Où souhaitez vous vous rendre?<br /><br />
<a href=\"../index.php\">La page d'accueil de la boutique?</a><br /><br />
<a href=\"cpte_client.php\">Ou la page de votre compte client?</a></p> ";
exit();
}
//si pas de réponse erreur dans le couple mdp/email
elseif ($data[0] == 0)
{
$erreur = 'Il y a au moins une erreur dans une saisie. Veuillez recommencer, svp.';
}
else
{
$erreur = 'Problème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion. Prévenir le webmaster.';
}
}
else
{
$erreur = 'Au moins un des 2 champs est vide. Merci de recommencer.';
}
}
?>
et au besoin le html:
<form action="identif.php" method="post" id="enreg">
<p>Formulaire d'identification:</p>
<p class="double">
<label>Votre email:</label>
<input type="text" id="email" name="email" value="<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>" />
</p>
<p class="double">
<label>Votre mot de passe:</label> <input type="password" id="password" name="password" value="<?php if (isset($_POST['password'])) echo htmlentities(trim($_POST['password'])); ?>" />
</p>
<br /><br /><br />
<input type="submit" name="connexion" value="connexion" id="Connexion" />
</form><br /><br />
<p><?php
if (isset($bravo)) echo $bravo;
if (isset($erreur)) echo $erreur;
?>
</p>
D'avance, merci pour vos avis et conseils.
Ce que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.