authentification

authentification - PHP - Programmation

Marsh Posté le 04-06-2007 à 20:44:27    

Bonjour;
J'essaye de créer un script qui permet à une personne d'être authentifiée pour accéder à une page.
Je suis sous wamp et dreamweaver v9.
J'ai créé la base sous phpmyadmin et fait insérer un couple de login/pass.
La page d'accueil mest sensée mener vers log.php sensée à son tour rediriger l'internaute en fonction de son mot de passe et login :
s'il est correct -> page reussite.html sinon -> page erreur.htm
Mon problème : je suis bloqué sur log.php qui reste une page vide.
Voyez vous l'erreur? Merci.
 

Code :
  1. <?php
  2. //définir les paramètres
  3. define("MYHOST","localhost" );
  4. define("MYUSER","root" );
  5. define("MYPASS","" );
  6. define("MYBASE", "authentification" );
  7. define("MYTABLE", "client" );
  8. //vérifier si les données sont postées
  9. if(isset($_POST['login']) && isset($_POST['pass']))
  10. {
  11.     $login=mysql_escape_string($_POST['login']);
  12.     $pass=mysql_escape_string($_POST['pass']);
  13. }
  14. else
  15. {
  16.     echo "mot de passe ou login manquants";
  17. }
  18. //se connecter à la base
  19. $idcom=@mysql_connect(MYHOST,MYUSER,MYPASS,MYBASE,MYTABLE);
  20. if(!$idcom)
  21. {
  22.     echo "Connexion impossible à la base";
  23. }
  24. //faire une requête
  25. $requete="select * from client where login='$login' AND pass='$pass'";
  26. $idresult=@mysql_query($requete,$idcom);
  27. //évaluer les résultats de la requête  
  28. if(!idresult)
  29. {
  30.     header("Location: erreur.htm" ); // redirection à la page d'échec
  31. }
  32. else
  33. {
  34.      header("Location: reussite.html" ); // redirection à la page d'accès
  35. }
  36. //fermer la connexion à la base
  37. mysql_close($idcom);
  38. ?>

Reply

Marsh Posté le 04-06-2007 à 20:44:27   

Reply

Marsh Posté le 04-06-2007 à 20:47:11    

Parce que mysql_query retourne pas ce que tu t'attends ... Va voir des exemples dans la doc (php.net) et regarde du côté de mysql_fetch_array

Reply

Marsh Posté le 04-06-2007 à 21:01:09    

Hum, ça vient pas plutôt du mysql_connect, qui englobe tout ?
Perso j'aurais fait ça:

Code :
  1. mysql_connect("host","login","pass" );
  2. mysql_select_db("base" );

Message cité 1 fois
Message édité par Zorro561 le 04-06-2007 à 21:02:18
Reply

Marsh Posté le 04-06-2007 à 21:07:41    

esox_ch a écrit :

Parce que mysql_query retourne pas ce que tu t'attends ... Va voir des exemples dans la doc (php.net) et regarde du côté de mysql_fetch_array


 
J'ai vu les exemples de php.net, mais je ne sais pas comment utiliser mysql_fetch_row dans ce cas.

Reply

Marsh Posté le 04-06-2007 à 21:22:05    

Zorro561 a écrit :

Hum, ça vient pas plutôt du mysql_connect, qui englobe tout ?
Perso j'aurais fait ça:

Code :
  1. mysql_connect("host","login","pass" );
  2. mysql_select_db("base" );



 
Tout à fait, j'avais pas fait gaffe ...
 
 
@teycir : Pourtant ton exemple est identique à beaucoup d'autres donnés sur le web ... cherche un peu ... lit ... parce que le script que tu as pondu est un peu à côté de la plaque ...


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 04-06-2007 à 21:43:40    

esox_ch a écrit :

Tout à fait, j'avais pas fait gaffe ...
 
 
@teycir : Pourtant ton exemple est identique à beaucoup d'autres donnés sur le web ... cherche un peu ... lit ... parce que le script que tu as pondu est un peu à côté de la plaque ...


 
 
J'ai refait le code et j'ai toujours le même problème.
 

Code :
  1. <?php
  2. //vérifier si les données sont postées
  3. if(isset($_POST['login']) && isset($_POST['pass']))
  4. {
  5.     $login=mysql_escape_string($_POST['login']);
  6.     $pass=mysql_escape_string($_POST['pass']);
  7. }
  8. else
  9. {
  10.     echo "mot de passe ou login manquants";
  11. }
  12. //se connecter à la base
  13. mysql_connect("localhost", "mysql_user", "mysql_password" ) or
  14. die("Impossible de se connecter : " . mysql_error());
  15. mysql_select_db("authentifier" );
  16. //faire une requête
  17. $requete="select * from client where login='$login' AND pass='$pass'";
  18. $result=@mysql_query($requete);
  19. if(!$result)
  20. {
  21.    echo 'Impossible d\'exécuter la requête : ' . mysql_error();
  22.    exit;
  23. }
  24. //aller chercher la ligne de requête
  25. $row = mysql_fetch_row($result);
  26. //si on ne la trouve pas
  27. if(!$row)
  28. {
  29.      header("Location: erreur.htm" ); // redirection à la page erreur
  30. }
  31. //sinon
  32. else
  33. {
  34.      header("Location: reussite.html" ); // redirection à la page reussite
  35. }
  36. //liberation de mémoire
  37. mysql_free_result($result);
  38. ?>

Reply

Marsh Posté le 04-06-2007 à 21:54:08    

teycir a écrit :


Mon problème : je suis bloqué sur log.php qui reste une page vide.


Si tu regardes la source, ya rien non plus ?


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 04-06-2007 à 22:09:04    

theredled a écrit :

Si tu regardes la source, ya rien non plus ?


 
J'ai fait une toute petite modif pour mysql connect, mais j'ai toujours la page vide sous dreamweaver v9.
Ma base est pourtant bien créé et mon wamp marche à 100%.
Sous zend studio 5.5 j'ai le message d'erreur suivant :
mot de passe ou login manquants
Warning: Cannot modify header information - headers already sent by (output started at E:\Documents and Settings\teycir\Bureau\exo_authentification\log.php:15) in E:\Documents and Settings\teycir\Bureau\exo_authentification\log.php on line 38
Mais c'est normal, je suis sous débogeur interne.
 

Code :
  1. <?php
  2. //définition des paramètres
  3. define("MYHOST","localhost" );
  4. define("MYUSER","root" );
  5. define("MYPASS","" );
  6. //vérifier si les données sont postées
  7. if(isset($_POST['login']) && isset($_POST['pass']))
  8. {
  9.     $login=mysql_escape_string($_POST['login']);
  10.     $pass=mysql_escape_string($_POST['pass']);
  11. }
  12. else
  13. {
  14.     echo "mot de passe ou login manquants";
  15. }
  16. //se connecter à la base
  17. mysql_connect(MYHOST, MYUSER, MYPASS) or
  18. die("Impossible de se connecter : " . mysql_error());
  19. mysql_select_db("authentifier" );
  20. //faire une requête
  21. $requete="select * from client where login='$login' AND password='$pass'";
  22. $result=@mysql_query($requete);
  23. if(!$result)
  24. {
  25.    echo 'Impossible d\'exécuter la requête : ' . mysql_error();
  26.    exit;
  27. }
  28. //aller chercher la ligne de requête
  29. $row = mysql_fetch_row($result);
  30. //si on ne la trouve pas
  31. if(!$row)
  32. {
  33.      header("Location: erreur.htm" ); // redirection à la page erreur
  34. }
  35. //sinon
  36. else
  37. {
  38.      header("Location: reussite.html" ); // redirection à la page reussite
  39. }
  40. //liberation de mémoire
  41. mysql_free_result($result);
  42. ?>


Message édité par teycir le 04-06-2007 à 22:13:57
Reply

Marsh Posté le 04-06-2007 à 22:36:37    

Ok, maintenant tu arrêtes de jouer au con, tu vas lire la doc et tu reviens quand tu as compris ... Parce qu'il y a des exemples qui à peine retouchés font ce que tu as besoin ...
Et par la même occasion tu vas te renseigner sur comment on fait pour mettre l'error_reporting à une valeur convenable pour avoir des messages d'erreur dans ton WAMP pour voir où il te dit que ça coince.

Reply

Marsh Posté le 04-06-2007 à 23:04:15    

esox_ch a écrit :

Ok, maintenant tu arrêtes de jouer au con, tu vas lire la doc et tu reviens quand tu as compris ... Parce qu'il y a des exemples qui à peine retouchés font ce que tu as besoin ...
Et par la même occasion tu vas te renseigner sur comment on fait pour mettre l'error_reporting à une valeur convenable pour avoir des messages d'erreur dans ton WAMP pour voir où il te dit que ça coince.


 
Ah bon, si c'est aussi simple que cela pourquoi tu n'indiques pas comment résoudre le problème?  
Arrête de polluer ce thread stp, ou apporte qqchse de constructif.

Reply

Marsh Posté le 04-06-2007 à 23:04:15   

Reply

Marsh Posté le 04-06-2007 à 23:42:12    

Tu vas sur google, tu entres "php mysql_query" tu prends le 1er lien (Tiens ... la doc justement) et tu as TOUT ce qu'il faut pour que ça marche.  
Après pour le error reporting je te conseille d'utiliser les mots magiques "php error_reporting" et de choisir le ... 1er lien (Tiens ... le manuel !!)
 
Si tu arrives pas avec ça, arrête la prog et teste qqch de mieux approprié à tes capacités :spamafote:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed