Identification : mauvais mot de passe, fonctionne
Résolu/Fermé
Val_Vanco
Messages postés
7
Date d'inscription
lundi 10 février 2014
Statut
Membre
Dernière intervention
10 février 2014
-
Modifié par Val_Vanco le 10/02/2014 à 15:00
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 10 févr. 2014 à 16:47
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 10 févr. 2014 à 16:47
A voir également:
- Identification : mauvais mot de passe, fonctionne
- Entrer les informations d'identification reseau - Guide
- Code d'identification - Guide
- Supprimer identification instagram - Guide
- Identification instagram - Guide
- Vos informations d'identification n'ont pas fonctionné ✓ - Forum Windows 8 / 8.1
4 réponses
Reivax962
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
Modifié par Reivax962 le 10/02/2014 à 15:07
Modifié par Reivax962 le 10/02/2014 à 15:07
Bonjour,
Pour tester une égalité, il faut utiliser == et pas = !
Pour éviter ce genre d'erreurs, une technique est d'inverser les opérandes :
L'avantage ? Si tu oublies un =, tu as une erreur de syntaxe, au lieu d'un script qui semble marcher mais ne fait pas ce que tu veux...
Xavier
PS : juste pour faire un tout petit peu mieux, niveau sécurité :
C'est pas encore la panacée, mais c'est « moins pire ».
Pour tester une égalité, il faut utiliser == et pas = !
if ($pwd == "Colbert")
Pour éviter ce genre d'erreurs, une technique est d'inverser les opérandes :
if ("Colbert" == $pwd)
L'avantage ? Si tu oublies un =, tu as une erreur de syntaxe, au lieu d'un script qui semble marcher mais ne fait pas ce que tu veux...
Xavier
PS : juste pour faire un tout petit peu mieux, niveau sécurité :
if (md5($pwd) == "c0e2b8403c14ce455b2fafeec0f4190f1")
C'est pas encore la panacée, mais c'est « moins pire ».
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
10 févr. 2014 à 15:06
10 févr. 2014 à 15:06
Bonjour,
La bonne syntaxe ne serait pas :
if ($pwd="Colbert") assigne "Colbert" à $pwd !!!
La bonne syntaxe ne serait pas :
if ($pwd =="Colbert")
if ($pwd="Colbert") assigne "Colbert" à $pwd !!!
Val_Vanco
Messages postés
7
Date d'inscription
lundi 10 février 2014
Statut
Membre
Dernière intervention
10 février 2014
10 févr. 2014 à 15:13
10 févr. 2014 à 15:13
Bonjour,
merci de la réponse.
J'ai fait le test, et il affiche la page où est écrit : Mauvais identifiant et/ou mot de passe
merci de la réponse.
J'ai fait le test, et il affiche la page où est écrit : Mauvais identifiant et/ou mot de passe
Utilisateur anonyme
10 févr. 2014 à 15:06
10 févr. 2014 à 15:06
Bonjour
Grand classique :
est une affectation, toujours vraie. La comparaison se fait avec ==, pas = :
Grand classique :
if ($pwd="Colbert")
est une affectation, toujours vraie. La comparaison se fait avec ==, pas = :
if ($pwd=="Colbert")
Val_Vanco
Messages postés
7
Date d'inscription
lundi 10 février 2014
Statut
Membre
Dernière intervention
10 février 2014
10 févr. 2014 à 15:13
10 févr. 2014 à 15:13
Bonjour,
merci de la réponse.
J'ai fait le test, et il affiche la page où est écrit : Mauvais identifiant et/ou mot de passe.
merci de la réponse.
J'ai fait le test, et il affiche la page où est écrit : Mauvais identifiant et/ou mot de passe.
stgcici
Messages postés
51
Date d'inscription
mardi 29 octobre 2013
Statut
Membre
Dernière intervention
18 février 2014
1
10 févr. 2014 à 15:12
10 févr. 2014 à 15:12
Bonsoir,
Après récupération du mot de passe saisie par l'utilisateur au niveau de ta page de traitement fais un test sur la validité du mot de passe récupéré.
if(!empty($_POST['mot_passe'])){//si le champ mot de passe n'est pas vide
$passwrd=$_POST['mot_passe'];
//requete pour verifier dans la base de données si le mot passe existe
$verif="select * from table_connexion where mot_de_pass='.$passwrd.'";
$resul=mysql_query($verif);
$nbre_ligne=mysql_num_rows($resul);
if($nbre_ligne>0){
echo "Vous êtes un utilisateur";
//traitement a faire
}else{
echo 'connexion impossible,vous n'êtes pas membre';
header(location:'connexion.php');//retour a la page de connexion
}
}else{
echo 'Le mot de passe est obligatoire';
header(location:'connexion.php');//retour a la page de connexion
}
Après récupération du mot de passe saisie par l'utilisateur au niveau de ta page de traitement fais un test sur la validité du mot de passe récupéré.
if(!empty($_POST['mot_passe'])){//si le champ mot de passe n'est pas vide
$passwrd=$_POST['mot_passe'];
//requete pour verifier dans la base de données si le mot passe existe
$verif="select * from table_connexion where mot_de_pass='.$passwrd.'";
$resul=mysql_query($verif);
$nbre_ligne=mysql_num_rows($resul);
if($nbre_ligne>0){
echo "Vous êtes un utilisateur";
//traitement a faire
}else{
echo 'connexion impossible,vous n'êtes pas membre';
header(location:'connexion.php');//retour a la page de connexion
}
}else{
echo 'Le mot de passe est obligatoire';
header(location:'connexion.php');//retour a la page de connexion
}
Val_Vanco
Messages postés
7
Date d'inscription
lundi 10 février 2014
Statut
Membre
Dernière intervention
10 février 2014
10 févr. 2014 à 15:16
10 févr. 2014 à 15:16
J'utilise un mot de passe enregistré directement sur la page de connexion (n'utilisant, ni ne maitrisant encore MySQL). Ces mes collègues du service informatique qui m'ont dis de faire ainsi, mais même eux ne trouve pas le problème.
Dois je donc obligatoirement passer par une base de données? Ne puis je avoir le mot de passe directement enregistré dans le code php?
Dois je donc obligatoirement passer par une base de données? Ne puis je avoir le mot de passe directement enregistré dans le code php?
stgcici
Messages postés
51
Date d'inscription
mardi 29 octobre 2013
Statut
Membre
Dernière intervention
18 février 2014
1
10 févr. 2014 à 15:39
10 févr. 2014 à 15:39
Non tu n'est pas obligé de passer par une base données si toutefois tu connais déjà le bon mot de passe.
Dans ce que il suffit de faire une comparaison entre le mot de passe saisie par l'utilisateur et le vrai mot de passe.
//récupéré le mot de passe saisie par l'utilisateur
$passwrd=$_POST['nom_champ_mot_de_passe'];
if(empty($passwrd)){
echo 'le mot de passe est obligatoire';
}else if($passwrd=="la valeur du mot de passe"){
echo 'connexion reussie';
}else{
echo 'vous n'êtes pas autorisé,mauvais mot de passe';
header(location:'connexion.php');//retour a la page de connexion
}
Au faite c'est a toi de décider du traitement a faire lorsque le mot de passe saisie par l'utilisateur n'est pas bon?
Tu peux par exemple afficher un message pour dire que le mot de passe est incorrecte et revenir sur la page de connexion afin de permettre a l'utilisateur de faire une nouvelle saisie.
Dans ce que il suffit de faire une comparaison entre le mot de passe saisie par l'utilisateur et le vrai mot de passe.
//récupéré le mot de passe saisie par l'utilisateur
$passwrd=$_POST['nom_champ_mot_de_passe'];
if(empty($passwrd)){
echo 'le mot de passe est obligatoire';
}else if($passwrd=="la valeur du mot de passe"){
echo 'connexion reussie';
}else{
echo 'vous n'êtes pas autorisé,mauvais mot de passe';
header(location:'connexion.php');//retour a la page de connexion
}
Au faite c'est a toi de décider du traitement a faire lorsque le mot de passe saisie par l'utilisateur n'est pas bon?
Tu peux par exemple afficher un message pour dire que le mot de passe est incorrecte et revenir sur la page de connexion afin de permettre a l'utilisateur de faire une nouvelle saisie.
Val_Vanco
Messages postés
7
Date d'inscription
lundi 10 février 2014
Statut
Membre
Dernière intervention
10 février 2014
10 févr. 2014 à 15:53
10 févr. 2014 à 15:53
Autre problème quand j'execute ce code, il me dise a chaque fois : problème a la ligne 13 (le header(location...)).
stgcici
Messages postés
51
Date d'inscription
mardi 29 octobre 2013
Statut
Membre
Dernière intervention
18 février 2014
1
10 févr. 2014 à 16:09
10 févr. 2014 à 16:09
Pour rediriger le visiteur vers la page de connexion en cas de mot de passe incorrecte, il suffit d'utiliser le code suivant :
Essais ce code(la premiére lettre de location est en majuscule:Location au lieu de location)
<?php
header('Location: nom_de_ta_page.php');
?>
Essais ce code(la premiére lettre de location est en majuscule:Location au lieu de location)
<?php
header('Location: nom_de_ta_page.php');
?>
10 févr. 2014 à 15:13
merci de la réponse.
J'ai fait le test, avec chacun des test (deux =, inverser, et le dernier ((md5($pwd)) mais a chaque fois (comme a chaque mauvais mot de passe), il affiche la page où est écrit : Mauvais identifiant et/ou mot de passe
10 févr. 2014 à 16:24
Es-tu sûr qu'il est dans la variable $pwd ?
10 févr. 2014 à 16:43
10 févr. 2014 à 16:47
Peux-tu me montrer comment tu mets le mot de passe dans $pwd ?