Rendre login.php retourne la résultat correct
arfah
Messages postés
28
Statut
Membre
-
arfah Messages postés 28 Statut Membre -
arfah Messages postés 28 Statut Membre -
bonjour,
j'ai crée une formulaire d'identification avec login et mot de passe tel que le mot de passe est crypte.
aussi, une 2 eme formulaire d'inscription qui insère mot de passe crypte dans BD.
le problème de ce code login.php de la page identification :
retourne une résultat fausse lorsque je tape login et mot de passe correcte .
avec passoublie.html si le mot de passe est faut
CSFT.html si le login et mot de passe sont correcte
sinon retourne nouveaumembre.html
s'il vous plais , comment rendre ce code retourne le résultat correcte lors de taper login et mot de passe ?
code de page identification
<?php
mysql_connect("127.0.0.1","root","");
mysql_select_db("internaute");
if(isset($_POST) && !empty($_POST['login']) && !empty ($_POST['pass']))
{
$webUser = $_POST['login'];
$webUserPass = md5(addslashes(htmlspecialchars($_POST['pass'] )));
$qry = "SELECT mot_passe AS existe FROM ins WHERE login = '". $webUser ."' AND mot_passe = '" . $webUserPass . "'";
$req = mysql_query($qry) or die('Erreur SQL !<br>'.$qry.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['mot_passe'] != $webUserPass)
{
include('passoublie.html');
exit;
}
else { session_start();
$_SESSION['login'] = $webUser;
include('CSFT.html');
}
}
else {
include('nouveaumembre.html');
exit;
}
?>
merci
j'ai crée une formulaire d'identification avec login et mot de passe tel que le mot de passe est crypte.
aussi, une 2 eme formulaire d'inscription qui insère mot de passe crypte dans BD.
le problème de ce code login.php de la page identification :
retourne une résultat fausse lorsque je tape login et mot de passe correcte .
avec passoublie.html si le mot de passe est faut
CSFT.html si le login et mot de passe sont correcte
sinon retourne nouveaumembre.html
s'il vous plais , comment rendre ce code retourne le résultat correcte lors de taper login et mot de passe ?
code de page identification
<?php
mysql_connect("127.0.0.1","root","");
mysql_select_db("internaute");
if(isset($_POST) && !empty($_POST['login']) && !empty ($_POST['pass']))
{
$webUser = $_POST['login'];
$webUserPass = md5(addslashes(htmlspecialchars($_POST['pass'] )));
$qry = "SELECT mot_passe AS existe FROM ins WHERE login = '". $webUser ."' AND mot_passe = '" . $webUserPass . "'";
$req = mysql_query($qry) or die('Erreur SQL !<br>'.$qry.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['mot_passe'] != $webUserPass)
{
include('passoublie.html');
exit;
}
else { session_start();
$_SESSION['login'] = $webUser;
include('CSFT.html');
}
}
else {
include('nouveaumembre.html');
exit;
}
?>
merci
A voir également:
- Rendre login.php retourne la résultat correct
- Ecran retourne - Guide
- Resultat foot - Télécharger - Vie quotidienne
- Comment rendre un fichier moins lourd - Guide
- Lexer resultat - Télécharger - Sport
- Résultat loto bulgarie autriche azerbaïdjan ✓ - Forum Loisirs / Divertissements
2 réponses
Salut ... :S
1 - On se connecte via PDO.
2 - On vérifie que les champs on bien été rempli ...
3 - On prepare la requete. (plus sécurisé qu'une resquete directe).
4 - On execute la requete.
5 - On recupere les infos.
6 - On crypte le mot de passe entré par l'utilisateur, et On vérifie qu'on a bel et bien un résultat(mot de passe), puis on compare ces deux derniers.
- Dans le cas ou on a pas de résultat, c'est que l'utilisateur n'est pas encore inscrit, alors on le redirige vers la page nouveaumembre.html .
- Dans le cas ou les mots de passe sont égaux, alors on crée une session.
7 - Quant au passoublie.html, je vois pas l'intérêt d'inclure la page, tu dois juste afficher un lien a l'utilisateur pour que si il a oublier son mot de passe, alors il clique sur ce dernier pour le récupérer, en lui réaffichant aussi le formulaire pour qu'il ressaye d'entrer le mot de passe.
Bonne chance ...
try {
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=ta_bdd', 'root', '', $pdo_options);
}
catch (Exception $e) {
die('Erreur : ' . $e->getMessage());
}
if(isset($_POST) && !empty($_POST['login']) && !empty ($_POST['pass'])) {
$webUser = htmlentities($_POST['pseudo']);
$resultat = $bdd->prepare('SELECT mot_passe FROM ins WHERE login = ?');
$resultat->execute(array($webUser));
$data = $resultat->fetch();
$mdp = md5(htmlentities($_POST['pass']));
if(isset($data['mot_passe']) AND $mdp == $data['mot_passe']) {
session_start();
$_SESSION['login'] = $webUser;
include('CSFT.html'); //je vois pas l'intérêt ...!!!
}
else {
echo 'Mot de passe oublié ?! <a href="passoublie.html">Cliquez ici</a><br />';
?>
<form method="post" action="page_courante.php">
<p><input type="text" name="login" /></p>
<p><input type="password" name="pass" /></p>
<p><input type="submit" value="Envoyer" /></p>
</form>
<?php }
}
else header("Location: " . $_SERVER['HTTP_HOST'].'/nouveaumembre.html');
?>
1 - On se connecte via PDO.
2 - On vérifie que les champs on bien été rempli ...
3 - On prepare la requete. (plus sécurisé qu'une resquete directe).
4 - On execute la requete.
5 - On recupere les infos.
6 - On crypte le mot de passe entré par l'utilisateur, et On vérifie qu'on a bel et bien un résultat(mot de passe), puis on compare ces deux derniers.
- Dans le cas ou on a pas de résultat, c'est que l'utilisateur n'est pas encore inscrit, alors on le redirige vers la page nouveaumembre.html .
- Dans le cas ou les mots de passe sont égaux, alors on crée une session.
7 - Quant au passoublie.html, je vois pas l'intérêt d'inclure la page, tu dois juste afficher un lien a l'utilisateur pour que si il a oublier son mot de passe, alors il clique sur ce dernier pour le récupérer, en lui réaffichant aussi le formulaire pour qu'il ressaye d'entrer le mot de passe.
Bonne chance ...
Ok, alors pour resumer ...
La structure de ta table ...
Nom de la table : ins
Champs nécessaires : login, mot_passe
Formulaire :
Méthode de l'envoi du formulaire : post
Nom de l'input n°1 : login
Nom de l'input n°2 : pass
Note :
Ton code était tros embrouillé, c'est pour ça que je t'incite a utiliser celui la, il est plus claire, mieux structuré, et plus performant ...
La structure de ta table ...
Nom de la table : ins
Champs nécessaires : login, mot_passe
Formulaire :
Méthode de l'envoi du formulaire : post
Nom de l'input n°1 : login
Nom de l'input n°2 : pass
if(isset($_POST['login']) AND isset($_POST['pass'])) { // Début du premier if
$webUser = htmlentities($_POST['login']);
$mdp = htmlentities($_POST['pass']);
try {
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options); // Connexion a la base de données
}
catch (Exception $e) {
die('Erreur : ' . $e->getMessage()); //On recupere les erreurs
}
$resultat = $bdd->prepare('SELECT mot_passe FROM ins WHERE login = ?'); // On prepare la requete
$resultat->execute(array($webUser)); // On execute la requete
$data = $resultat->fetch(); // On recupere les resultats
$mdp = md5($mdp);
if(isset($data['mot_passe']) AND $mdp == $data['mot_passe']) { // Si le mot de passe existe et est egale au mot de passe entré par l'utilisateur
session_start();
$_SESSION['login'] = $webUser;
include('CSFT.html'); //je vois toujours pas l'intérêt ...!!!
}
else { // Debut du else -----------------------
echo 'Mot de passe oublié ?! <a href="passoublie.html">Cliquez ici</a><br />';
?>
<form method="post" action="page_courante.php">
<p><input type="text" name="login" /></p>
<p><input type="password" name="pass" /></p>
<p><input type="submit" value="Envoyer" /></p>
</form>
<?php } // Fin du else ---------------------
} // Fin du premier Else
else header("Location: nouveaumembre.html");
Note :
Ton code était tros embrouillé, c'est pour ça que je t'incite a utiliser celui la, il est plus claire, mieux structuré, et plus performant ...
bonjour,
merci beaucoup de votre explication et pour votre aide .
Mais , easyphp affiche l'erreur de la ligne de cette instruction:
la ligne 6 qui commence par : try { ......... ET erreur est :
Parse error: parse error, unexpected '{' in c:\program files\easyphp\www\projet3\conn.php on line 6
je pense qui il est impossible d'enlever '{'
s'il vous plais, comment éviter çà ?
merci beaucoup
merci beaucoup de votre explication et pour votre aide .
Mais , easyphp affiche l'erreur de la ligne de cette instruction:
la ligne 6 qui commence par : try { ......... ET erreur est :
Parse error: parse error, unexpected '{' in c:\program files\easyphp\www\projet3\conn.php on line 6
je pense qui il est impossible d'enlever '{'
s'il vous plais, comment éviter çà ?
merci beaucoup
c'est la version de php que tu devrais renseigner ??!!
mais bref, mets le a jour ...
https://www.easyphp.org/
mais bref, mets le a jour ...
https://www.easyphp.org/
Merci beaucoup votre aide .
J'utilise votre code mais j'ai modifie parque il y a des instructions difficiles . Mais, j'ai le même problème :
je tape login et mot de passe correcte , il affiche que votre mot de passe est incorrecte
Aussi , je teste si les deux n'existent pas dans BD, normalement, il retourne nouveau membre . Mais , il affiche que votre mot de passe est incorrecte.
N.B. les champs de table inscription nome ins : nom,prenom, email,login,mot_passe,confirmer_mot_passe
les champs de identification: login , pass
le code :
<?php
mysql_connect("127.0.0.1","root","");
mysql_select_db("internaute");
if(isset($_POST) && !empty($_POST['login']) && !empty ($_POST['pass']))
{
$webUser = htmlentities($_POST['login']);
$resultat = "SELECT mot_passe FROM ins WHERE login='".$webUser."'" ;
$req = mysql_query($resultat) or die('Erreur SQL !<br>'.$resultat.'<br>'.mysql_error());
$data = mysql_fetch_array($req);
$mdp = md5(htmlentities($_POST['pass']));
if(isset($data['mot_passe']) AND $mdp == $data['mot_passe'])
{
session_start();
$_SESSION['login'] = $webUser;
include('CSFT.html');
}
else
{
include('mot_passeoub.html');
}
}
else
include('nouveaumembre1.html');
?>
S'il vous plais, je te donne le code de login.php et die moi quel est erreur de ce code pour retourne le résultat correcte?
je te die que le code que je te donne ne fonctionne pas
Donc , s'il vous aide moi de trouver une solution de ce code pour qu'il fonctionne
merci