[RESOLU] verifier le login et le mot de passe d'un utilisateur

catalano
Invité n'ayant pas de compte PHPfrance

10 juin 2005, 15:16

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> 

Eléphant du PHP | 260 Messages

10 juin 2005, 15:21

Salut,
quand tu echo tes variables id et password sa donne quoi ?
   <? print "ID : ".$id." et PASS : ".$Password; ?>
Mon jeu : http://www.battle-stars.fr.tc
---
Mon serveur : http://servlan.dyndns.org
---
Bientôt tous mes serveurs OPEN ;)

Invité
Invité n'ayant pas de compte PHPfrance

10 juin 2005, 15:29

moi perso j'utilise des $_SESSION au lieu des session_register

Invité
Invité n'ayant pas de compte PHPfrance

10 juin 2005, 15:32

salut merci pour ta reponse.
ca m affiche rien qd je fai un echo.

Invité
Invité n'ayant pas de compte PHPfrance

10 juin 2005, 15:43

et c est normal que ca ne maffiche rien car j ai oublié
$id=$_POST['id'];
$Password=$_POST['Password'];

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 juin 2005, 15:48

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 214 Messages

10 juin 2005, 15:49

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"] : "";

ViPHP
fab
ViPHP | 2657 Messages

10 juin 2005, 15:53

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 juin 2005, 15:53

Tiens, c'est bizarre, ce code me dit quelquechose ? :wink:

Sinon,
session_register("id")
equivaut à
$_SESSION["id"] = "";
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 214 Messages

10 juin 2005, 15:54

Oui lol, c'est un Dieu mythique qui m'a parlé et m'a révélé ce code :lol:

Eléphant du PHP | 260 Messages

10 juin 2005, 15:55

Et donc maintenant que tu a initialisé tes 2 variables sa marche mieux ?
Mon jeu : http://www.battle-stars.fr.tc
---
Mon serveur : http://servlan.dyndns.org
---
Bientôt tous mes serveurs OPEN ;)

Invité
Invité n'ayant pas de compte PHPfrance

10 juin 2005, 15:57

merci pour vos réponses.j y comprends rien à ces sessions.:wink:

Eléphant du PHP | 214 Messages

10 juin 2005, 15:59

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 juin 2005, 16:00

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 19672 Messages

10 juin 2005, 16:04

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:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: