Script PHP pour authentification

termGSI -  
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:

4 réponses

le père
 
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 !

<?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();
?>
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
gg ^^
0
le père
 
Il reste plusieurs erreurs..
== 'etablissement') // apostrophes autour de etablissement
<a href='erreurConnexion.php'> // la cible du href entre apostrophes, pas de (
0
termGSI
 
Donc, voici ce que j'ai depuis mon précédent message, modifier :

<?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 :)
0
le père
 
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)
->
$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 ^^
0
le père
 
Au fait, si tu mettais mysql_error() dans le die(), tu aurais un message un peu plus explicite.
$rs=mysql_query($requete) or die(mysql_erro());
0
raz
 
Salut j'ai crée une base de données sans mot de passe je foulais crée une page d'authentification quelqu'un peut m'aider ?
0
JUJU
 
ta caremant un script pour inscription ?
0
Loader Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   4
 
Salut, pourrais-tu mettre ton Script en téléchargement S'il te plait ? : http;//loadheberg.fr/fichiers
0