Probleme de validation de mon formulaire
Résolu
Yuushi_Sato
Messages postés
104
Date d'inscription
Statut
Membre
Dernière intervention
-
Yuushi_Sato Messages postés 104 Date d'inscription Statut Membre Dernière intervention -
Yuushi_Sato Messages postés 104 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voila que je m'explique un peu je veut faire une section admin protégée par login et mot de pass
mais j'ai un probleme quand je valide rien ne se passe
voile mon code source:
j'aimerais savoir ou je me suis planter la page de connexion s'affiche je rentre mon login et mot de pass et je retourne directement sur la page de connexion.
Un petit coup de main n'est pas de refut!
voila que je m'explique un peu je veut faire une section admin protégée par login et mot de pass
mais j'ai un probleme quand je valide rien ne se passe
voile mon code source:
<?php $utilisateurs = array( 'user' => 'password', ); // login et pass $login = trim($_POST['login']); $pass = trim($_POST['pass']); if(empty($login) || empty($pass)) { echo"<body> <center> <form name=login> <table width=325 border=1 cellpadding=3> <tr><td colspan=2 bgcolor=\"black\"><center><font size=\"+2\" color=\"white\" ><b>Connexion</b></font></center></td></tr> <tr><td>Pseudo:</td><td><input type=text size=\"25\" name=$login></td></tr> <tr><td>Mot de passe:</td><td><input type=password size=\"25\" name=$pass></td></tr> <tr><td colspan=2 align=center><input type=submit value=\"Valider\"></td></tr> </table> </form> </center> </body>"; // affichage du formulaire de validation } else { if(array_key_exists($login,$utilisateurs)) { $pass_valide = $utilisateurs[$login]; if($pass == $pass_valide) { header("Location: admin.php"); // connecté + affichage de la page admin } else { echo 'Mot de passe invalide !'; } } } ?>
j'aimerais savoir ou je me suis planter la page de connexion s'affiche je rentre mon login et mot de pass et je retourne directement sur la page de connexion.
Un petit coup de main n'est pas de refut!
A voir également:
- Probleme de validation de mon formulaire
- Whatsapp formulaire opposition - Guide
- Ethernet n'a pas de configuration ip valide - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Civilité sur un formulaire - Forum VB / VBA
8 réponses
Bonjour
<form name=login method="post"> peut-etre
EDIT : Arf non j'ai vu :
Au lieu de $login et $pass
Et moi je te conseillerais de tester tes valeurs avant de les stocker dans des variables pour eviter les warnings.
Re-edit :
Faut corriger pour le method=post aussi sinon tu envoi tes variables en $_GET et tu essayes de les récupérer en $_POST
<form name=login method="post"> peut-etre
EDIT : Arf non j'ai vu :
<tr><td>Pseudo:</td><td><input type=text size=\"25\" name=login></td></tr> <tr><td>Mot de passe:</td><td><input type=password size=\"25\" name=pass></td></tr>
Au lieu de $login et $pass
Et moi je te conseillerais de tester tes valeurs avant de les stocker dans des variables pour eviter les warnings.
Re-edit :
Faut corriger pour le method=post aussi sinon tu envoi tes variables en $_GET et tu essayes de les récupérer en $_POST
le probleme c'est que je debute en php et je comprend pas toujours tout
merci de m'avoir repondu si vite
merci de m'avoir repondu si vite
Si tu ne precise pas "method=post", les valeur seront envoyé en GET, c'est à dire a la fin de ton url.
Pour récupérer tes variables tu dois donner un nom à tes input.
Or dans ton cas le nom n'était pas bon, donc tu envoyais des valeurs qui n'avait pas pour nom login et pass donc $_POST['login'] et $_POST['pass'] n'existaient jamais.
Pour preuve, avec ton code posté en haut si tu entrait test et test dans les champs ton adresse ressemblait à :
http://.../mapage.php?=test&=test
Pour un$_GET cela doit ressembler à :
http://.../mapage.php?NOMDEVARIABLE1=test&NOMDEVARIABLE2=test
Et tu les récupère via : $_GET['NOMDEVARIABLE1'] et $_GET['NOMDEVARIABLE2']
-------------------------------
ici tu assigne tes $_POST à des variables avant de savoir si ils existent ou non
Je te conseillerai :
Pour récupérer tes variables tu dois donner un nom à tes input.
Or dans ton cas le nom n'était pas bon, donc tu envoyais des valeurs qui n'avait pas pour nom login et pass donc $_POST['login'] et $_POST['pass'] n'existaient jamais.
Pour preuve, avec ton code posté en haut si tu entrait test et test dans les champs ton adresse ressemblait à :
http://.../mapage.php?=test&=test
Pour un$_GET cela doit ressembler à :
http://.../mapage.php?NOMDEVARIABLE1=test&NOMDEVARIABLE2=test
Et tu les récupère via : $_GET['NOMDEVARIABLE1'] et $_GET['NOMDEVARIABLE2']
-------------------------------
$login = trim($_POST['login']); $pass = trim($_POST['pass']); if(empty($login) || empty($pass)) {
ici tu assigne tes $_POST à des variables avant de savoir si ils existent ou non
Je te conseillerai :
if(empty($_POST['login']) || empty($_POST['pass'])) { ... } else { $login = trim($_POST['login']); $pass = trim($_POST['pass']); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
merci de ta réponse le probleme etais dans la method post
erreur en formulant mon form (form name=login passer en form method=post le reste a ne pas toucher ou déplacer, ne pas deplacer $login = trim($_POST['login']); & $pass = trim($_POST['pass']); en haut sinon l'affichage du formulaire ne s'affiche pas, probleme resolu
merci a toi pour tes conseil.
<?php
$utilisateurs = array(
'user' => 'password',
); // login et pass
$login = trim($_POST['login']);
$pass = trim($_POST['pass']);
if(empty($login) || empty($pass)) {
echo"
<form method=post> //le probleme etais ici
<table width=325 border=1 cellpadding=3>
<tr><td colspan=2 bgcolor=\"black\"><center><font size=\"+2\" color=\"white\" ><b>Connexion</b></font></center></td></tr>
<tr><td>Pseudo:</td><td><input type=text size=\"25\" name=login></td></tr>
<tr><td>Mot de passe:</td><td><input type=password size=\"25\" name=pass></td></tr>
<tr><td colspan=2 align=center><input type=submit value=\"Valider\"></td></tr>
</table>
</form>
//fermeture de la fenetre
echo "</table>";// affichage du formulaire de validation
} else {
if(array_key_exists($login,$utilisateurs)) {
$login = trim($_POST['login']);
$pass = trim($_POST['pass']);
$pass_valide = $utilisateurs[$login];
if($pass == $pass_valide) {
header("Location: admin.php"); // connecté + affichage de la page admin
} else {
echo 'Mot de passe invalide !';
}
}
}
?>
erreur en formulant mon form (form name=login passer en form method=post le reste a ne pas toucher ou déplacer, ne pas deplacer $login = trim($_POST['login']); & $pass = trim($_POST['pass']); en haut sinon l'affichage du formulaire ne s'affiche pas, probleme resolu
merci a toi pour tes conseil.
juste une question en passant comment crypter le mot de passe en md5, j'ai ce probleme la maintenant c'est du genre md5($pass) mais je dois le mettre ou exactement parce que sa marche pas
merci d'avance de ta réponse
merci d'avance de ta réponse
$pouet = 'test'; echo $pouet; $pouet = md5($pouet); echo $pouet;
Il suffit de faire comme ça pour que ça marche
même
$pouet = md5('test'); echo $pouet;
fonctionne
Alors soit tu fais :
$login = md5(trim($_POST['login'])); $pass = md5(trim($_POST['pass']));
soit
$login = trim($_POST['login']); $pass = trim($_POST['pass']); $login = md5($login); $pass = md5($pass);