Page 1 sur 2

verifier le login et le mot de passe d'un utilisateur

Posté : 10 juin 2005, 15:16
par catalano
bonjour à tous;
j ai un formulaire "formulaire.html" avec deux champs:"login" et "mot de passe" (celui ci permettra aux clients de s'authentifieer).j utilise une page "login.php" pour traiter ca.quand j'execute le formualire,il ne se passe rien et en plus il n ya aucune erreur.
mais ca ne marche pas!!!!
merci d'avance.
voici le code.

Code:


<? session_start () ?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<title>Document sans titre</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
</head> 
<body> 

<? 
/* On enregistre nos variables de la session */ 
session_register("id"); 
session_register("Password"); 
global $id,$Password; 

// Connexion au serveur 
$ide=@mysql_connect("localhost","root") or die("Impossible de se connecter à la base de donnée"); 
@mysql_select_db("Client") or die("<br>Impossible de séléctionner la base: Client<br>".mysql_error()); 

// Sélection de la table 
$Requete = " SELECT id, Password "; 
$Requete.= " FROM Client"; 
$Requete.= " WHERE id = '".$id."' AND Password = '".$Password."' "; 
$result = mysql_query($Requete,$ide) or die("Requete de vérification de Login et Mot de Passe invalide: ".mysql_error()); 

// retoune le nombre d'enregistrements dans la table ( ligne ) 
$lignes = mysql_num_rows($result); 
if ($lignes<1) 
{ 
$erreur="Erreur Login ou Mot de Passe incorrect"; 
$pwd=""; 
return false; 
} 
   else 
   { 
   $res=mysql_fetch_row($result); 
      if ($res[0]==$id && $res[1]==$Password) 
      { 
      return true; 
      } 
      else 
         { 
         $erreur="Erreur Login ou Mot de Passe incorrect"; 
         $pwd=""; 
         return false; 
         } 
   } 

?> 
</body> 
</html> 

Posté : 10 juin 2005, 15:21
par waf_wafe
Salut,
quand tu echo tes variables id et password sa donne quoi ?
   <? print "ID : ".$id." et PASS : ".$Password; ?>

Posté : 10 juin 2005, 15:29
par Invité
moi perso j'utilise des $_SESSION au lieu des session_register

Posté : 10 juin 2005, 15:32
par Invité
salut merci pour ta reponse.
ca m affiche rien qd je fai un echo.

Posté : 10 juin 2005, 15:43
par Invité
et c est normal que ca ne maffiche rien car j ai oublié
$id=$_POST['id'];
$Password=$_POST['Password'];

Posté : 10 juin 2005, 15:48
par zeus
Dans ton code, tu ne récupère jamais les données

il faut que tu fasse
$id = $_POST["id"]; //ou $_GET selon la méthode de ton formulaire
$pass = $_POST["password"];
Pour récuperer ce que tu as du formulaire.

Ensuite tu teste l'existence dans ta base de données et ENSUITE tu les enregistre dans une variable de session !!!

Ce que tu fait dans ton code, c'est d'initialiser tes variables de session et de tester si elles existe dans la bdd

Posté : 10 juin 2005, 15:49
par MissAube
Si j'ai bien compris quand tu fais session_register("login") tu veux enregistrer la valeur du champ login de ton formulaire dans la session ?

Si c'est bien ça et que je ne me trompe pas, il faut d'abord récupérer la valeur de tes champs de formulaire dans une variable à l'aide de :
$login = (isset($_POST["login"])) ? $_POST["login"] : "";

Posté : 10 juin 2005, 15:53
par fab
apres il faut que tu fasses attention aux failles de sécurité, ne jamais jamais faire confiance a l'utilisateur et à ce qu'il envoi.
Un petit tour là devrait t'aider
http://www.phpsecure.info/v2/article/phpmysql.php

Posté : 10 juin 2005, 15:53
par zeus
Tiens, c'est bizarre, ce code me dit quelquechose ? :wink:

Sinon,
session_register("id")
equivaut à
$_SESSION["id"] = "";

Posté : 10 juin 2005, 15:54
par MissAube
Oui lol, c'est un Dieu mythique qui m'a parlé et m'a révélé ce code :lol:

Posté : 10 juin 2005, 15:55
par waf_wafe
Et donc maintenant que tu a initialisé tes 2 variables sa marche mieux ?

Posté : 10 juin 2005, 15:57
par Invité
merci pour vos réponses.j y comprends rien à ces sessions.:wink:

Posté : 10 juin 2005, 15:59
par MissAube
Courage je te soutiens à fond, j'ai eu les mêmes problèmes et d'ailleurs je vais en avoir encore beaucoup avant de bien comprendre le php mais c'est tellement génial après quand ça marche :D

Posté : 10 juin 2005, 16:00
par zeus
Les sessions, c'est des variables comme les autres, sauf que tu peut les sauvegarder d'une page à une autre

Quand tu veut utiliser une variable $id par exemple, si tu veux faire $id2 = $id +1; avant tu t'assure d'avaoir fait $id = 1

Les variables de session, c'est pareil, avant de pouvoir les utiliser, il faut que tu les initialises

après avoir fait
$id = $_POST["id"];
$pass = $_POST["password"]
tu fait
$_SESSION["id"] = $id;
$_SESSION["pass"] = $pass;
Et tu as initialisé les varaibles de session

Posté : 10 juin 2005, 16:04
par Cyrano
Faudra un jour que quelqu'un m'explique la raison et l'intérêt de cette idée aussi sotte que grenue de trimballer un mot de passe dans une variable de session :shock: