Script PHP pour authentification
termGSI
-
Loader Messages postés 63 Statut Membre -
Loader Messages postés 63 Statut Membre -
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
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
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 (