Probleme dans php

sheva94 -  
2berte Messages postés 204 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je suis debutant dans le language php,
j'ai crée une base de données avec une table a 3 champs id;identifiant,motdepass que j'ai rempli
et je voudrais comparer la valeur qu'un utilisateur rentre dans un formulaire avec le contenu de la base de données mon programme est le suivant :

<?php

$ide=$_POST["identifiant"];
$code=$_POST["passeword"];

// connection a la base de données
mysql_connect("localhost", "root", "");
//choix de la base
mysql_select_db("codeacces");

$sql='SELECT identifiant, motdepass FROM code '; // Requête SQL
$req =mysql_query($sql);

$donnees = mysql_fetch_array($req) ;

if (($ide==$donnees['identifiant'])&&($code==$donnees['motdepass']))
{ require 'PROGRAMMATION_WEB.php';}
else { echo "L'identifiant ou le mode passe est incorrecte ";
echo "Pour revenir à la page precedente et réessayer cliquez sur ";
}

mysql_close(); // Déconnexion de MySQL
?>
<a href="PROGRAMMATION WEB.php">Retour à la page d'Accueil</a>

Merci par avance
A voir également:

3 réponses

Smoking bird Messages postés 870 Date d'inscription   Statut Membre Dernière intervention   58
 
tu dois balayer le tableau de résultats que te renvoi mysql avec une instruction while:

while($donnees=mysql_fetch_array($req)) {
ton code
}
0
Smoking bird Messages postés 870 Date d'inscription   Statut Membre Dernière intervention   58
 
et t'as pas besoin de toutes ces parenthèses dans ton if

if ( $ide==$donnees['identifiant'] AND $code==$donnees['motdepass'] )

ps: l'opérateur AND a une priorité plus élevée que le &&
0
2berte Messages postés 204 Date d'inscription   Statut Membre Dernière intervention   143
 
Ta requête me semble étrange, car là elle te retourne tous les champs. Toi ce que tu veux faire, c'est vérifier si la personne a un compte avec son identifiant, et si son mot de passe est valide ?

Si c'est le cas tu devrais faire une requête de ce style :

$query = "select * from code where identifiant = '".$ide."' and motdepass = '".$code."';";
resultat = mysqlquery($query) or die(mysql_error());


or die(mysql_error()) t'indique s'il y a une erreur dans ta requête...

Une fois ta requête exécuté, tu regarde s'il y a un enregistrement, si c'est le cas tu lui donne accés aux pages autorisées (si et seulement si tes identifiant sont uniques dans ta table), sinon tu lui dit qu'il y a une erreur.

En attente de te lire en retour,

2berte
0