Authentification php
Dernière réponse : dans Programmation
Bonjour,
j'aimerai mettre en place un petit programme pour une authentification pour un accès à internet. j'ai 2 petit morceau de codes,
le premiers est le formulaire d'authentification:
le second est la connexion à ma bdd pour valider l'authentification:
Le problème, c'est qu'une fois rempli, le formulaire ne donne rien, je ne sais pas si ce sont mes deux programmes qui ne communiquent pas, ou si il y a des erreurs.
j'aimerais que si l'authentification est bonne, on me redirige sur google, mais si elle ne l'est pas, que je retourne sur mon formulaire.
Je vous remercie d'avance pour votre aide
j'aimerai mettre en place un petit programme pour une authentification pour un accès à internet. j'ai 2 petit morceau de codes,
le premiers est le formulaire d'authentification:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>"> <html xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>" lang="fr" xml:lang="fr"> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> <title>Authentification</title> <link rel="stylesheet" type="text/css" media="screen,projection" href="ecran.css"/> <script type="text/javascript" src="script.js"></script> </head> <body> <p>Saisissez vos Nom et mot de passe pour vous identifier: </p> <form action="Validation.php" method="post"> <table border="0"> <tr> <td>Nom:</td> <td><input type="text" name="Nom" size="25" class="majuscule" /></td> </tr> <tr> <td>Prenom:</td> <td><input type="text" name="Prenom" size="25"/></td> </tr> <tr> <td>Mot de passe:</td> <td><input type="password" name="Password" size="10"/></td> </tr> </table> <p><input type="submit" name="Valider" value="Valider"/></p> </form> </body> </html>
le second est la connexion à ma bdd pour valider l'authentification:
<?php session_start(); $_SESSION=array(); //efacement de toutes les variables enregistrées //Connection au serveur MYsql et à la Bdd $mysql_hostname="localhost"; $mysql_username = "root"; $mysql_password = ""; $mysql_basename = "sergentberthet"; $ConnexionServeur = mysql_connect($mysql_hostname, $mysql_username, $mysql_password ); $ConnexionBdd = mysql_select_db($mysql_basename, $ConnexionServeur); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>"> <html xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>" lang="fr" xml:lang="fr"> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> <title>Validation</title> <link rel="stylesheet" type="text/css" media="screen,projection" href="ecran.css"/> <script type="text/javascript" src="script.js"></script> </head> <body> <form action="suite.php" method="post"> <?php //on crée les variables en provenance du formulaire extract ($_POST[) $Password=trim(stripslashes($Password)); $Nom=stripslashes($Nom); //Mise en majuscule du nom pour comparaison avec la base de données echo "strtoupper($txt)"; //preparation de la requete pour interoger la bdd $Sql="SELECT `Nom` , `Prenom` , `Password` FROM sergentberthet WHERE "; //on envoi la requete $Reponse = mysql_querry($Sql, $ConnexionServeur); $NbLignes = mysql_num_rows($Reponse); //Combien de lignes correspondent if ($NbLignes==0) { session_destroy(); echo "<p>utilisateur inconnu! Essayez à nouveau.</p>\n"; echo "<p>Vous allez retrouver le formulaire dans 2 secondes</p>\n"; echo "<script type= 'text/javascript'>\n"; echo "setTimeout(\"document.location.replace('authentification.html')\",2000);\n"; echo "</script>\n"; } else { $LigneReponse=mysql_fetch_array($Reponse, MYSQL_ASSOC); $_SESSION['NomUtilisateur']=$Nom; $_SESSION['IdUtilisateur']=$LigneReponse['id']; echo "<script type= 'text/javascript'>\n"; echo "document.location.replace('suite.php');\n"; echo "</script>\n"; } //Fermeture de la connexion au serveur mysql mysql_close($ConnexionServeur); ?> <p class="align-droite"></p> </form> </body> </html>
Le problème, c'est qu'une fois rempli, le formulaire ne donne rien, je ne sais pas si ce sont mes deux programmes qui ne communiquent pas, ou si il y a des erreurs.
j'aimerais que si l'authentification est bonne, on me redirige sur google, mais si elle ne l'est pas, que je retourne sur mon formulaire.
Je vous remercie d'avance pour votre aide
Autres pages sur : authentification php
Lassé par la pub ? Créez un compte
salut, je ne suis pas très bon en web mais
me parait byzarre de mélanger du php et du javascript.
sinon pour le retour du formulaire tu n'as qu'a faire
et la redirection google :
echo "<script type= 'text/javascript'>\n"; echo "setTimeout(\"document.location.replace('authentification.html')\",2000);\n"; echo "</script>\n";
me parait byzarre de mélanger du php et du javascript.
sinon pour le retour du formulaire tu n'as qu'a faire
echo "authentification refusée"; include("formulaire.html");
et la redirection google :
header("Location: www.google.fr");
voila la communication se fait entre les deux si j'ouvre le formulaire par firefox mais pas par internet explorer, si tu sais pourquoi?
de plus, avec firefox, il me met un message:
utilisateur inconnu! Essayez à nouveau.\n"; echo "
Vous allez retrouver le formulaire dans 2 secondes
alors que le login et le mot de passe son bon
Sinon je vais rajouter ton idée, mais je pourrais pas la tester tant que l'authentification ne se fait pas
de plus, avec firefox, il me met un message:
utilisateur inconnu! Essayez à nouveau.\n"; echo "
Vous allez retrouver le formulaire dans 2 secondes
\n"; echo "\n"; } else { $LigneReponse=mysql_fetch_array($Reponse, MYSQL_ASSOC); $_SESSION['NomUtilisateur']=$Nom; $_SESSION['IdUtilisateur']=$LigneReponse['id']; echo "\n"; } //Fermeture de la connexion au serveur mysql mysql_close($ConnexionServeur); ?>
alors que le login et le mot de passe son bon
Sinon je vais rajouter ton idée, mais je pourrais pas la tester tant que l'authentification ne se fait pas
J'ai modifier mon second programme:
Le probleme c'est qu'avec firefox, ca m'ouvre google directement, meme avec un login et mo de passe erronné. et avec internet explorer, meme avec de bon login et password, je reste sur mon formulaire.
//Combien de lignes correspondent <? if ($NbLignes==0) { echo "<meta http-equiv='refresh' content='0; url=Formulaire.html'>"; } else { echo "<meta http-equiv='refresh' content='0; url=<a href="http://www.google.fr" target="_blank">http://www.google.fr</a>'>"; } ?>
Le probleme c'est qu'avec firefox, ca m'ouvre google directement, meme avec un login et mo de passe erronné. et avec internet explorer, meme avec de bon login et password, je reste sur mon formulaire.
si tu reste sur le formulaire sans aucun message d'erreur c'est probablement que t'as une couille dans le javascript.
je comprend pas un truc c'est pourquoi la partie bdd dans ton 2ème programme est dans un formulaire?ton validation.php ne devrait meme pas avoir de html puisque tout ce qu'elle fait c'est redirigé sur google ou renvoyer le formulaire.
ensuite si t'arrive direct sur google quoi qu'il arrive c'est forcément que ton select ne trouve rien, autrement dit la requête est mal faite.
petite maquette rapide :
formulaire.html
ton formulaire pas de problème
validation.php
je l'ai fait assez rapide j'espère que c'est assez clair.
je te conseille de virer tout ton javascript puisque il ne sert pas pour l'authentification.
tiens nous au courant
je comprend pas un truc c'est pourquoi la partie bdd dans ton 2ème programme est dans un formulaire?ton validation.php ne devrait meme pas avoir de html puisque tout ce qu'elle fait c'est redirigé sur google ou renvoyer le formulaire.
ensuite si t'arrive direct sur google quoi qu'il arrive c'est forcément que ton select ne trouve rien, autrement dit la requête est mal faite.
petite maquette rapide :
formulaire.html
ton formulaire pas de problème
validation.php
extract($_post); $connexion=mysql_connect($host, $log, $passe); mysql_select_db($base); //on récupère les champs login et password en évitant les caractères html $pseudo=htmlspecialchars($_POST['login']); $password=htmlspecialchars($_POST['password']); //récupération des informations du membre par rapport au pseudo entré $query="SELECT password FROM membre where pseudo='$pseudo'"; $resultat=mysql_query($query, $connexion); $donnees=mysql_fetch_array($resultat); //comparaison du mot de passe entré et du mot de passe en base(hashage) //si bon mot de passe if($password==$donnees['password]) //redirige vers google header("Location:google.fr"); else { echo "pas bon"; include("formulaire.html"); }
je l'ai fait assez rapide j'espère que c'est assez clair.
je te conseille de virer tout ton javascript puisque il ne sert pas pour l'authentification.
tiens nous au courant
Je pense avoir suivi a peu pres ce que tu m'a dit:
mais ça ne fonctionne toujours pas, mon fichier validation s'ouvre et m'affiche une page blanche.
Je pense qu'il doit y avoir un problème au niveau du if ou de la connexion à la bdd.
je n'y connais pas grand chose mais merci déjà pour ton aide
<?php //Connection au serveur MYsql et à la Bdd $mysql_hostname="localhost:8080"; $mysql_username = "root"; $mysql_password = ""; $mysql_basename = "sergentberthet"; //on crée les variables en provenance du formulaire extract ($_POST) $ConnexionServeur = mysql_connect($mysql_hostname, $mysql_username, $mysql_password ); $ConnexionBdd = mysql_select_db($mysql_basename, $ConnexionServeur); $Password=htmlspecialchar($_POPST['Password'])); $Nom=htmlspecialchar($_POST['Nom']); $Prenom=htmlspecialchar($_POST['Prenom']); //Mise en majuscule du nom pour comparaison avec la base de données //echo "strtoupper($txt)"; $Sql="SELECT Nom, Prenom, Password FROM motdepasse"; //on envoi la requete $Reponse = mysql_querry($Sql, $ConnexionServeur); $donnees=mysql_fetch_array($Reponse); //comparaison du mot de passe entré et du mot de passe bdd if($Password==$donees['Password']) header("Location:google.fr"); else { echo "Mauvaise identification"; include("Formulaire.html"); } ?>
mais ça ne fonctionne toujours pas, mon fichier validation s'ouvre et m'affiche une page blanche.
Je pense qu'il doit y avoir un problème au niveau du if ou de la connexion à la bdd.
je n'y connais pas grand chose mais merci déjà pour ton aide
bon je l'ai refais t'as fais pas mal de fautes en faites mais aucune méchante c'est juste des fautes de frappe
formulaire :
validation :
change les noms biensur puisque je n'ai pas tout à fait les memes noms que toi genre validation.php et non Validation.php etc
ça marche chez moi
formulaire :
<html> <body> <p>Saisissez vos Nom et mot de passe pour vous identifier: </p> <form action="validation.php" method="post"> <table border="0"> <tr> <td>Nom:</td> <td><input type="text" name="Nom" size="25" class="majuscule" /></td> </tr> <tr> <td>Prenom:</td> <td><input type="text" name="Prenom" size="25"/></td> </tr> <tr> <td>Mot de passe:</td> <td><input type="password" name="Password" size="10"/></td> </tr> </table> <p><input type="submit" name="Valider" value="Valider"/></p> </form> </body> </html>
validation :
<?php //on crée les variables en provenance du formulaire extract ($_POST) ; ta connexion a la bdd $Password=htmlspecialchars($_POST['Password']); $Nom=htmlspecialchars($_POST['Nom']); $Prenom=htmlspecialchars($_POST['Prenom']); //Mise en majuscule du nom pour comparaison avec la base de données //echo "strtoupper($txt)"; $Sql="SELECT nom, prenom, password FROM motdepasse where nom='$Nom' AND prenom='$Prenom'"; //on envoi la requete $Reponse = mysql_query($Sql, $connexion); $donnees=mysql_fetch_array($Reponse); //comparaison du mot de passe entré et du mot de passe bdd if($Password==$donnees['password']) header("Location: <a href="http://www.google.fr" target="_blank">http://www.google.fr</a>" ); else { echo "Mauvaise identification"; include("form.html" ); } ?>
change les noms biensur puisque je n'ai pas tout à fait les memes noms que toi genre validation.php et non Validation.php etc
ça marche chez moi
mais tu as une page toute blanche??
parce que quand j'ai récupéré ton code j'avais pleins d'erreurs de syntaxe php.
si c'était la bdd je pense que t'aurais une erreur à la connexion et si il ne trouve pas les mots de passe il afficherais au moins le formulaire.
regarde bien que c'est au bon fichier que t'envoie le formulaire.
moi ça marche donc c'est obligé qu'il te reste une petite faute.
reposte les codes des 2 fichiers que t'a corrigé que je regarde s'il reste une merde
parce que quand j'ai récupéré ton code j'avais pleins d'erreurs de syntaxe php.
si c'était la bdd je pense que t'aurais une erreur à la connexion et si il ne trouve pas les mots de passe il afficherais au moins le formulaire.
regarde bien que c'est au bon fichier que t'envoie le formulaire.
moi ça marche donc c'est obligé qu'il te reste une petite faute.
reposte les codes des 2 fichiers que t'a corrigé que je regarde s'il reste une merde
A ta premiere question, je repondrais oui, j'ai une page toute blanche avec comme url l'adresse de mon fichier validation3.php
voila mes deux codes apres correction:
formulaire:
Validation3:
Merci de me consacrer ce temps et de me répondre aussi vite
voila mes deux codes apres correction:
formulaire:
<body> <p>Saisissez vos Nom et mot de passe pour vous identifier: </p> <form action="Validation3.php" method="post"> <table border="0"> <tr> <td>Nom:</td> <td><input type="text" name="Nom" size="25" class="majuscule" /></td> </tr> <tr> <td>Prenom:</td> <td><input type="text" name="Prenom" size="25"/></td> </tr> <tr> <td>Mot de passe:</td> <td><input type="password" name="Password" size="10"/></td> </tr> </table> <p><input type="submit" name="Valider" value="Valider"/></p> </form> </body>
Validation3:
<?php //Connection au serveur MYsql et à la Bdd $mysql_hostname="localhost:8080"; $mysql_username = "root"; $mysql_password = ""; $mysql_basename = "sergentberthet"; //on crée les variables en provenance du formulaire extract ($_POST) $ConnexionServeur = mysql_connect($mysql_hostname, $mysql_username, $mysql_password ); $ConnexionBdd = mysql_select_db($mysql_basename, $ConnexionServeur); $Password=htmlspecialchars($_POST['Password']); $Nom=htmlspecialchars($_POST['Nom']); $Prenom=htmlspecialchars($_POST['Prenom']); //Mise en majuscule du nom pour comparaison avec la base de données //echo "strtoupper($txt)"; $Sql="SELECT Nom, Prenom, Password FROM motdepasse where nom='$Nom' AND prenom='$Prenom'"; //on envoi la requete $Reponse = mysql_querry($Sql, $ConnexionServeur); $donnees=mysql_fetch_array($Reponse); //comparaison du mot de passe entré et du mot de passe bdd if($Password==$donnees['Password']) header("Location:<a href="http://www.google.fr" target="_blank">http://www.google.fr</a>"); else { echo "Mauvaise identification"; include("Formulaire.html"); } ?>
Merci de me consacrer ce temps et de me répondre aussi vite
dans ta requête select :
$Sql="SELECT Nom, Prenom, Password FROM motdepasse where nom='$Nom' AND prenom='$Prenom'";
tu fais select de truc avec majuscule en première lettre puis where truc sans majuscule. je ne sais pas si mysql y est sensible mais : dans ta base je ne sais pas si tu as mis les majuscules mais si oui ensuite met les partout.
un truc aussi c'est que à extract($_POST) il manque le point virgule et la c'est impossible que ça n'affiche pas d'erreur.
si le formulaire est bien envoyé au bon fichier, dis moi tu utilise quoi pour coder?et quel logiciel avec php apache et phpmyadmin?wamp?easyphp?
$Sql="SELECT Nom, Prenom, Password FROM motdepasse where nom='$Nom' AND prenom='$Prenom'";
tu fais select de truc avec majuscule en première lettre puis where truc sans majuscule. je ne sais pas si mysql y est sensible mais : dans ta base je ne sais pas si tu as mis les majuscules mais si oui ensuite met les partout.
un truc aussi c'est que à extract($_POST) il manque le point virgule et la c'est impossible que ça n'affiche pas d'erreur.
si le formulaire est bien envoyé au bon fichier, dis moi tu utilise quoi pour coder?et quel logiciel avec php apache et phpmyadmin?wamp?easyphp?
il doit y avoir un gros conflit parce que il te reste des erreurs de syntaxe, le préprocesseur PHP ne fonctionne pas sinon en exécutant ton code tu aurais déjà :
Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\gestion09\validation3.php on line 11
c'est obligé que tu ait l'erreur mais ton php ne marche pas donc tu obtiens une page blanche. Il faut que tu utilise juste wamp comme moi et yaura aucun problème. Sinon si tu veux pas virer ton autre serveur je ne sais pas comment régler ça
Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\gestion09\validation3.php on line 11
c'est obligé que tu ait l'erreur mais ton php ne marche pas donc tu obtiens une page blanche. Il faut que tu utilise juste wamp comme moi et yaura aucun problème. Sinon si tu veux pas virer ton autre serveur je ne sais pas comment régler ça
C'est de ma faute si on a mis tout ce temps, j'aurai du y penser plus tot.
J'ai trouver un tuto pour installer php sur iis:
http://www.sbsfr.org/index.php?page=PHPsurXP
Donc je vais essayer et si ca marche je mettrais un petit post que tout le monde soit au courant.
Merci pour ton aide
J'ai trouver un tuto pour installer php sur iis:
http://www.sbsfr.org/index.php?page=PHPsurXP
Donc je vais essayer et si ca marche je mettrais un petit post que tout le monde soit au courant.
Merci pour ton aide
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumPage authentification php
- ForumAuthentification php site du zero
- ForumPb authentification php mysql
- ForumAide authentification en php
- ForumPage authentification en php
- ForumAuthentification sous php
- ForumSysteme authentification php
- ForumAuthentification avec php
- ForumPbm authentification en php mysql
- ForumSimple authentification en php
- Voir plus