FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Controle d'ouverture de session
 

Controle d'ouverture de session

Il y a 389 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Controle d'ouverture de session
 
Plus d'informations

Bonjour ou bonsoir,
 
j'ai créé une page de controle de mot de passe en fonction du login sur mon site mais y'a un probleme la requete ne semble me retourner aucun resultat.
 
Je précise que j'ai un enregistrement dans ma base de données spécialement fait pour tester le login et mot de passe
Le login testé est 'testentreprise' et le mot de passe est 'motdepasse'
ils sont bien dans la base de données, j'ai pas fais de fautes je précise !
 
J'ai vérifié en faisant des 'echo' a chaque niveau de la page et tout semble normal sauf 'echo $req;' qui me renvoie 'Resource id #3'.
 
Voila le code qui pose probleme...
 

Code :
  1. // On va chercher le mot de passe attribué à ce login
  2.   $sql = "SELECT idEnt, mdpEnt FROM entreprise WHERE idEnt = '".addslashes($id)."'";
  3.   $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  4. // On vérifie que l'utilisateur existe bien
  5.   if (mysql_num_rows($req) > 0)
  6. {    $data = mysql_fetch_assoc($req);
  7. // On vérifie que son mot de passe est correct
  8.     if ($mdp == $data['mdpEnt'])
  9. {
  10.       $loginOK = true;
  11. }}


 
Le serveur ne passe pas dans le premier 'if' ce qui voudrait dire que 'mysql_num_rows($req)' n'est pas superieur a 0 mais il devrait trouver un enregistrement !
 
J'attend votre aide avec impatience svp, je vous remercie d'avance !


Message édité par Goras le 11-03-2005 à 00:40:04

---------------
L'informatique c'est chiant mais moin que les hommes quand même !

 

Profil : Pointeur
Plus d'informations

faut pas que tu utilises  num_row et fetch_assoc...
fait comme ca :

Code :
  1. $loginOK= false;
  2. if($data = mysql_fetch_array($req))
  3. {
  4. if($mdp = $data['mdpEnt']) $loginOK = true;
  5. }


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

J'ai mis ton code mais le probleme c'est que la, '$data' ne vaut rien encore donc ca peut pas fonctionner !
 
Alors je met quoi dans '$data' et où ?
 
Je donne tout le code de la page :
 

Code :
  1. <?
  2. // on se connecte à MySQL
  3. $db = mysql_connect('localhost', 'root', '');
  4. // on séléctionne la base
  5. mysql_select_db('gestappeloffre',$db);
  6. // On démarre la session
  7. session_start();
  8. $loginOK = false;
  9. // On n'effectue les traitement qu'à la condition que
  10. // les informations aient été effectivement postées
  11. if ( isset($_POST) && (!empty($_POST['id'])) && (!empty($_POST['mdp'])) )
  12. {
  13.       extract($_POST);
  14. // On va chercher le mot de passe attribué à ce login
  15.   $sql = "SELECT idEnt, mdpEnt FROM entreprise WHERE idEnt = '".addslashes($id)."'";
  16.   $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  17. // On vérifie que l'utilisateur existe bien
  18.   if ($data = mysql_fetch_array($req))
  19. {
  20. // On vérifie que son mot de passe est correct
  21.     if ($mdp == $data['mdpEnt'])
  22. {
  23.       $loginOK = true;
  24.     }
  25.   }
  26. }
  27. // Si le login a été validé on met les données en sessions
  28. if ($loginOK)
  29. {
  30.     $_SESSION['id'] = $data['idEnt'];
  31.     header("location: index.php" );
  32. }
  33. else
  34. {
  35.   header ("location: index.php?erreur=1" );
  36. }
  37. // on ferme la connexion à mysql
  38. mysql_close();
  39. ?>


 
Je reprécise que c'est la requête qui semble ne rien retourner et que 'echo $req;' me renvoie toujours 'Resource id #3', je l'ai mis juste apres le '$req = ...'


---------------
L'informatique c'est chiant mais moin que les hommes quand même !

 

Profil : Pointeur
Plus d'informations

que donne echo $sql ??
et print_r($data);


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

echo $sql;  
donne
SELECT idEnt, mdpEnt FROM entreprise WHERE idEnt = 'testentreprise'
 
et $data ne contient rien etant donné que avant mon code etait censé lui donner des valeurs dans le

Code :
  1. # if (mysql_num_rows($req) > 0)
  2. # {    $data = mysql_fetch_assoc($req);


 
et avec ton nouveau code il est affecté nul part, je t'ai demandé ou tu l'affectais '$data' justement...
 
a+


---------------
L'informatique c'est chiant mais moin que les hommes quand même !

 

Profil : Pointeur
Plus d'informations

bha pourtant ca devrait fonctionner :heink:


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Profil : Pointeur
Plus d'informations

fait un peu un print_r($data) a la ligne 33...


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

ca retourne rien print_r($data) puisque toute facon y'a rien dans data jt'ai dis tu m'a fais remplacé mon code et maintenant $data tu lui donne plu de valeur nul part...
 
c'est un probleme de SQL chui quasi sur..
la dedans mais je vois pas l'erreur
 

Code :
  1. // On va chercher le mot de passe attribué à ce login
  2.   $sql = "SELECT idEnt, mdpEnt FROM entreprise WHERE idEnt = '".addslashes($id)."'";
  3.   $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


 
j'en ai marre !!


---------------
L'informatique c'est chiant mais moin que les hommes quand même !

 

Profil : Pointeur
Plus d'informations

euh et la ligne 31 c'est quoi ??


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

a force d'etude des action possibles sur mysql par le php j'ai trouvé et résolu mon problème !
 
voila la page entiere (si elle peut servir a quelqu'un) de verification de login et mot de passe a partir d'un formulaire.
 

Code :
  1. <?
  2. // on se connecte à MySQL
  3. $db = mysql_connect('localhost', 'root', '');
  4. mysql_select_db('gestappeloffre',$db);
  5. // On initialise la variable de login
  6. $logued = 0;
  7. // On n'effectue les traitement qu'à la condition que
  8. // les informations aient été effectivement postées
  9. if ( isset($_POST) && (!empty($_POST['id'])) && (!empty($_POST['mdp'])) )
  10. {
  11.       extract($_POST);
  12. // On va chercher le mot de passe attribué à ce login
  13.   $sql = "SELECT idEnt, mdpEnt, nomMairie FROM entreprise WHERE idEnt = '".$_POST['id']."'";
  14.   $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  15.   $nb = mysql_num_rows($req);
  16. // On vérifie que l'utilisateur existe bien
  17. if    ($nb > 0)
  18. {    $data = mysql_fetch_array($req);
  19. // On vérifie que son mot de passe est correct
  20.     if ($mdp == $data['mdpEnt'])
  21. {
  22. if ($data['nomMairie'] = 'Villers saint Paul')
  23. {    $logued = 1;        }}}}
  24. // Si le login a été validé on met les données en sessions
  25. if ($logued == 1)
  26. {
  27.     $_SESSION['id'] = $data['idEnt'];
  28.     header("location: index.php" );
  29. }
  30. else
  31. {
  32.   header ("location: index.php?erreur=1" );
  33. }
  34. // on ferme la connexion à mysql
  35. mysql_close();
  36. ?>


 
merci de ton aide KangOl, c'est quand meme grace a toi que j'ai trouvé une partie du probleme  :)


---------------
L'informatique c'est chiant mais moin que les hommes quand même !

 


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Controle d'ouverture de session
 

Annonces Google
Publicité