Identification : mauvais mot de passe, fonctionne
Résolu
Val_Vanco
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Bonjour.
Je viens pour solliciter votre aide sur un petit problème que j'ai.
Je m'explique.
Je suis en train de créer un site en php pour mon rapport de stage. Donc pour prouver mes compétences en php, je met un système requerrant un mot de passe pour accèder au contenu du site.
J'ai fais les codes. Tout va bien avec le bon mot de passe, puis le problème survient. j'essaye un faux mot de passe, et ça passe quand même!!
Si quelqu'un saurait m'aider, ou me conseillez, je vous en remercie d'avance!
Val_vanco
modif :
Voila mon code login.php
<?php
if ($pwd="Colbert")
{
header('location:/rapport/Presentation.php');
}
else
{
header('location:/rapport/perdu.php');
}
?>
Je viens pour solliciter votre aide sur un petit problème que j'ai.
Je m'explique.
Je suis en train de créer un site en php pour mon rapport de stage. Donc pour prouver mes compétences en php, je met un système requerrant un mot de passe pour accèder au contenu du site.
J'ai fais les codes. Tout va bien avec le bon mot de passe, puis le problème survient. j'essaye un faux mot de passe, et ça passe quand même!!
Si quelqu'un saurait m'aider, ou me conseillez, je vous en remercie d'avance!
Val_vanco
modif :
Voila mon code login.php
<?php
if ($pwd="Colbert")
{
header('location:/rapport/Presentation.php');
}
else
{
header('location:/rapport/perdu.php');
}
?>
A voir également:
- Identification : mauvais mot de passe, fonctionne
- Entrer les informations d'identification reseau - Guide
- Supprimer identification instagram - Guide
- Identification instagram - Guide
- Intel processor identification utility - Télécharger - Informations & Diagnostic
- Ethernet identification ✓ - Forum Réseau
4 réponses
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 ».
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 !!!
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")
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
}
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?
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.
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
Es-tu sûr qu'il est dans la variable $pwd ?
Peux-tu me montrer comment tu mets le mot de passe dans $pwd ?