Authentification basique et redirection (header)

Authentification basique et redirection (header) - PHP - Programmation

Marsh Posté le 06-04-2005 à 14:58:28    

suis débutant, j'ai fait un formulaire basique :
si l'utilisateur et le mot de passe sont identique à ceux définis en dur
alors redirection...
sinon faire apparaître un message d'erreur.
 
Le problème ?
rien ne marche : ni la redirection
ni l'apparition du message d'erreur
 
Quel est votre avis ?
merci de me donner des pistes...
 
ps : l'utilisateur et le mot de passe = admin
 
 

Code :
  1. <html>
  2. <head>
  3. <title>The formulaire</title>
  4. </head>
  5. <body>
  6. <h2>Partie Administration</h2>
  7. <form  action="admin.php" class="formulaire" method="post">
  8. <label class="label-titre1">Idenfiant :</label>
  9. <input maxlength="10" size="20" name="utilisateur" value="<?=stripslashes(htmlentities($utilisateur))?>"/><br />
  10. <label class="label-titre1">Mot de passe :</label>
  11. <input type="password" maxlength="10" size="20" name="mdp" value="<?=stripslashes(htmlentities($mdp))?>"/><br />
  12. <input type="submit" name="envoyer"  value="Validez" />
  13. <input type="reset" name="Effacer"  value="Effacer" /><br />
  14. <?php
  15. if(!empty($envoyer)){
  16. //C'est ici que l'on définit le login et password :
  17. if (($utilisateur == "admin" ) && ($mdp == "admin" )){
  18.  //redirection si le login et le password est correct
  19.  header ("location: http://www.google.fr" );
  20.  exit;
  21. }
  22. else{
  23.  //redirection si le login et le password n'EST PAS CORRECT
  24.  print ("le login et password ne sont pas valide !" );
  25. }
  26. }
  27. ?>
  28. </form>
  29. </body>
  30. </html>


Message édité par foxcssfox le 06-04-2005 à 16:53:06
Reply

Marsh Posté le 06-04-2005 à 14:58:28   

Reply

Marsh Posté le 06-04-2005 à 15:05:04    

Tu as fait plusieurs erreurs compilées. Il te faut reviser:
 
Le passage de variables (apperemment tu l'as appris avec register_global a on, maintenant c'est OFF par default)
Les redirections
 
Parcontre ton html est pas mal, juste une ptite bulle : le titre doit etre en h1, pas h2. H2 c un titre de 2ème ordre


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

Marsh Posté le 06-04-2005 à 15:20:49    

Merci esox_ch pour tes encouragements...
Je maîtrise le xhtml 1.0 strict et les CSS, mais pour pas embrouiller j'ai fait au plus simple...
 
J'ai lu que les headers se placaient tout en haut de page...
Cela veut dire que je ne peux pas l'utiliser dans mon exemple ci-dessous ?
 
 
 
Voila mon nouveau code :
 

Code :
  1. <?php
  2. if(!empty($_POST['utilisateur']))
  3. $utilisateur=stripslashes($_POST['utilisateur']);
  4. else $utilisateur='';
  5. if(!empty($_POST['mdp']))
  6. $notes=stripslashes($_POST['mdp']);
  7. else $mdp= '';
  8. if(!empty($_POST['envoyer']))
  9. $envoyer=stripslashes($_POST['envoyer']);
  10. else $envoyer= false;
  11. ?>
  12. <html>
  13. <head>
  14. <title>The formulaire</title>
  15. </head>
  16. <body>
  17. <h1>Partie Administration</h1>
  18. <form  action="admin.php" class="formulaire" method="post">
  19. <label class="label-titre1">Idenfiant :</label>
  20. <input maxlength="10" size="20" name="utilisateur" value="<?=stripslashes(htmlentities($utilisateur))?>"/><br />
  21. <label class="label-titre1">Mot de passe :</label>
  22. <input type="password" maxlength="10" size="20" name="mdp" value="<?=stripslashes(htmlentities($mdp))?>"/><br />
  23. <input type="submit" name="envoyer"  value="envoyer" /><br />
  24. <?php
  25. if(!empty($envoyer)){
  26. //C'est ici que l'on définit le login et password :
  27. if (($utilisateur == "admin" ) && ($mdp == "admin" )){
  28.  //redirection si le login et le password est correct
  29.  header ("location: http://www.google.fr" );
  30.  exit;
  31. }
  32. else{
  33.  //redirection si le login et le password n'EST PAS CORRECT
  34.  print ("le login et password ne sont pas valide !" );
  35. }
  36. }
  37. ?>
  38. </form>
  39. </body>
  40. </html>


Message édité par foxcssfox le 06-04-2005 à 15:29:06
Reply

Marsh Posté le 06-04-2005 à 16:15:10    

Les header() doivent etre utiliser avec que les headers soient envoyés (logique), en gros rien ne doit etre affiché a l'ecran avant l'envoie des header.
 
Regarde du coté de ob_start() ob_end_flush() ,
 
Et c'est pas un !empty(...) mais un isset(...) && !empty(..)


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

Marsh Posté le 06-04-2005 à 16:32:50    

Code :
  1. <?php
  2. if(isset($_POST['utilisateur']))
  3. $utilisateur=stripslashes($_POST['utilisateur']);
  4. else $utilisateur='';
  5. if(isset($_POST['mdp']))
  6. $mdp=stripslashes($_POST['mdp']);
  7. else $mdp= '';
  8. if(isset($_POST['envoyer'])){
  9. //C'est ici que l'on définit le login et password :
  10. if (($utilisateur == "admin" ) && ($mdp == "admin" )){
  11.  //redirection si le login et le password est correct
  12.  header("Location: http://www.google.fr" );
  13.  exit;
  14. } else {
  15.  //redirection si le login et le password n'EST PAS CORRECT
  16.  header("Location: http://www.yahoo.fr" );
  17.  exit;
  18. }
  19. }
  20. ?>
  21. <html>
  22. <head>
  23. <title>The formulaire</title>
  24. </head>
  25. <body>
  26. <h1>Partie Administration</h1>
  27. <form  action="admin.php" class="formulaire" method="post">
  28. <label class="label-titre1">Idenfiant :</label>
  29. <input maxlength="10" size="20" name="utilisateur" value="<?php echo htmlentities($utilisateur); ?>"/><br />
  30. <label class="label-titre1">Mot de passe :</label>
  31. <input type="password" maxlength="10" size="20" name="mdp" value="<?php echo htmlentities($mdp); ?>"/><br />
  32. <input type="submit" name="envoyer"  value="envoyer" /><br />
  33. </form>
  34. </body>
  35. </html>


 
Je me suis permis quelques modifs ;)
 
Le stripslashes du début n'est à faire que si magic_quotes_gpc est sur On.


Message édité par ratibus le 06-04-2005 à 16:37:23
Reply

Marsh Posté le 06-04-2005 à 16:39:36    

Ca me plaît pas à moi le echo du mot de passe dans le input :/ Et niveau XHTML, faut associer les label avec les input :D

Reply

Marsh Posté le 06-04-2005 à 16:49:39    

Super grand merci Ratibus
j'ai compris...
J'y étais presque ;-)...Avant que je commence à m'arrracher les cheveux ;-)


Message édité par foxcssfox le 06-04-2005 à 16:50:20
Reply

Marsh Posté le 06-04-2005 à 17:44:18    

Il est ou ratibus ? :|


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

Marsh Posté le 07-04-2005 à 09:54:32    

Chui là pourquoi ? :D

Reply

Marsh Posté le 07-04-2005 à 20:49:31    

C'est pas juste, c'est que toi qui recolte les loriers alors qu'on s'est tous mobilisés!!! :D


Message édité par esox_ch le 07-04-2005 à 20:49:40

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

Marsh Posté le 07-04-2005 à 20:49:31   

Reply

Marsh Posté le 08-04-2005 à 09:46:33    

LOL

Reply

Sujets relatifs:

Leave a Replay

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