Script PHP pour authentification
termGSI
-
Loader Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
Loader Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
Bonjour, actuellement élève de terminale GSI, je dois faire évoluer une application web. J'ai donc essayer de créer une page web pour s'authentifier. Mais des tas d'erreurs s'affichent, donc : pourriez vous jeter un oeil et me dire ce qui ne va pas ?
<?php include("_gestionBase.inc.php"); // Connexion à la base de données $connect=mysql_connect(localhost, florian, 1234) or die("erreur de connexion au serveur".mysql_error()); // Ouverture de la base de données "festival" mysql_select_db("festival",$connect) or die("erreur de connexion à la base festival"); // Requete d'affichage des utilisateur $requete="SELECT * FROM utilisateur"; // Éxecution de la requete (le jeux d'enregistrement $rs contient les résultats) $rs=mysql_query($requete) or die("erreur dans la requête"); // Vérification de l'utilisateur while ($rs == true) { if ($rs=['id'] == $_POST["user"] and $rs=['mdp'] == $_POST["mdp"]) { If($rs=['statut'] == etablissement { echo "<a href="('menuEtablissement.php')"> Ouverture de la page menu établissement </a>" } Elseif ($rs=['statut'] == MDA { echo "<a href="('menuMDA.php')">Ouverture de la page menu maison des associations </a>" } } Else { echo "<a href="('erreurConnexion.php')">Ouverture de la page d'erreur connexion </a>" } } // Fermeture de la base mysql_close(); ?>
A voir également:
- Script PHP pour authentification
- Script vidéo youtube - Guide
- Double authentification google - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
4 réponses
Bonjour
Beaucoup trop d'erreurs pour les détailler une par une. Voici un corrigé (non vérifié) avec quelques commentaires.
Je suppose que ce script est appelé à partir d'un formulaire qui contient les champs 'user' et 'mdp'.
Si tu l'essayes, recopie les messages d'erreur (au moins les premiers s'il y en a beaucoup)
Bon courage !
Beaucoup trop d'erreurs pour les détailler une par une. Voici un corrigé (non vérifié) avec quelques commentaires.
Je suppose que ce script est appelé à partir d'un formulaire qui contient les champs 'user' et 'mdp'.
Si tu l'essayes, recopie les messages d'erreur (au moins les premiers s'il y en a beaucoup)
Bon courage !
<?php include("_gestionBase.inc.php"); // Connexion à la base de données // attention aux "" autour des chaînes de caratères $connect=mysql_connect("localhost", "florian", "1234") or die("erreur de connexion au serveur".mysql_error()); // Ouverture de la base de données "festival" mysql_select_db("festival",$connect) or die("erreur de connexion à la base festival"); // Requete d'affichage des utilisateur // Autant demander directement le bon ! $requete="SELECT * FROM utilisateur WHERE id=$_POST[user] AND mdp=$_POST[mdp]"; // Éxecution de la requete (le jeux d'enregistrement $rs contient les résultats) $rs=mysql_query($requete) or die("erreur dans la requête"); // Vérification de l'utilisateur if (mysql_num_rows ($rs)>0) { /// s'il y en a au moins un $utilisateur = mysql_fetch_assoc($rs); // on récupère les infos du premier (il devrait d'ailleurs y en avoir un seul) If($utilisateur['statut'] == etablissement) // et non pas $rs=['statut'] et attention à refermer la parenthèse { echo "<a href='menuEtablissement.php'> Ouverture de la page menu établissement </a>"; // attention au point-virgule et au href='...' } Elseif ($utilisateur['statut'] == 'MDA') // MDA entre ' ou " { echo "<a href='menuMDA.php'>Ouverture de la page menu maison des associations </a>"; } } Else { echo "<a href="('erreurConnexion.php')">Ouverture de la page d'erreur connexion </a>"; } // Fermeture de la base mysql_close(); ?>
Donc, voici ce que j'ai depuis mon précédent message, modifier :
Le message d'erreur qui s'affiche est "Erreur dans la requête", mais je ne vois pas ou elle se situe, vu que ma requête semble bonne ! (C'est ligne 12 !)
Merci d'avance pour votre aide :)
<?php include("_gestionBase.inc.php"); // Connexion à la base de données $connect=mysql_connect("localhost", "florian", "1234") or die("erreur de connexion au serveur".mysql_error()); // Ouverture de la base de données "festival" mysql_select_db("festival",$connect) or die("erreur de connexion à la base festival"); // Requete d'affichage des utilisateur $requete="SELECT * FROM utilisateur WHERE id=$_POST[user] AND mdp=$_POST[mdp]"; // Éxecution de la requete (le jeux d'enregistrement $rs contient les résultats) $rs=mysql_query($requete) or die("erreur dans la requête"); // Vérification de l'utilisateur if (mysql_num_rows ($rs)>0) // s'il y en a au moins un { $utilisateur = mysql_fetch_assoc($rs); // on récupére les infos du premier (il devrait d'ailleurs y en avoir un seul) If($utilisateur['statut'] == "etablissement") { echo "<a href='menuEtablissement.php'> Ouverture de la page menu établissement </a>"; } Elseif ($utilisateur['statut'] == "MDA") { echo "<a href='menuMDA.php'>Ouverture de la page menu maison des associations </a>"; } } Else { echo "<a href='erreurConnexion.php'>Ouverture de la page d\'erreur connexion</a>"; } // Fermeture de la base mysql_close(); ?>
Le message d'erreur qui s'affiche est "Erreur dans la requête", mais je ne vois pas ou elle se situe, vu que ma requête semble bonne ! (C'est ligne 12 !)
Merci d'avance pour votre aide :)
Il y a bien une erreur dans la requête...
supposons que le mot de passe entré soit 'toto'
La requête est "SELECT ..blabla.. WHERE mdp=toto"
MySQL (qui est très bête) ne sait pas si tu veux vérifier si le champ mdp contient toto ou si le champ toto contient mdp. En fait, dans ce cas, il croit que tu veux comparer le champ mdp et le champ toto.
Pour lui dire que l'un des deux désigne une valeur, il faut entourer la valeur d'apostrophes (inutile si c'est un nombre)
->
Et c'est moi qui l'avais écrite cette erreur... Tu as le droit de me taper sur les doigts ^^
supposons que le mot de passe entré soit 'toto'
La requête est "SELECT ..blabla.. WHERE mdp=toto"
MySQL (qui est très bête) ne sait pas si tu veux vérifier si le champ mdp contient toto ou si le champ toto contient mdp. En fait, dans ce cas, il croit que tu veux comparer le champ mdp et le champ toto.
Pour lui dire que l'un des deux désigne une valeur, il faut entourer la valeur d'apostrophes (inutile si c'est un nombre)
->
$requete="SELECT * FROM utilisateur WHERE id='$_POST[user]' AND mdp='$_POST[mdp]'";
Et c'est moi qui l'avais écrite cette erreur... Tu as le droit de me taper sur les doigts ^^
== 'etablissement') // apostrophes autour de etablissement
<a href='erreurConnexion.php'> // la cible du href entre apostrophes, pas de (