Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
856 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  probleme de validation avec include

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme de validation avec include

n°1095115
freed102
Arayashiki
Posté le 24-05-2005 à 15:27:42  profilanswer
 

en tentant de faire une seule page (template) index.php
avec des includes en fonction d'une variable.. j'ai des problèmes car il faut valider deux fois la page pour qu'elle soit afficher... je m'explique en un bout de code :
 

Code :
  1. <div id="centre">
  2. <?php
  3. if(!isset($_SESSION['titre_etape']))
  4. {
  5. $_SESSION['titre_etape']="Connectez-vous";
  6. }
  7. if($_SESSION['titre_etape']=="Connectez-vous" )
  8. {
  9. echo "<div id=\"divcentre\"><h1>$_SESSION[titre_etape]</h1>";
  10. include('etape_connect.php');
  11. echo "</div>";
  12. }
  13. elseif($_SESSION['titre_etape']=="Saisie des coordonnées" )
  14. {
  15. echo "<div id=\"divcentre\"><h1>$_SESSION[titre_etape]</h1>";
  16. include('etape_coordonnees.php');
  17. echo "</div>";
  18. }
  19. elseif($_SESSION['titre_etape']=="Choisissez votre logo" )
  20. {
  21. echo "<div id=\"divcentre\"><h1>$_SESSION[titre_etape]</h1>";
  22. include('etape_logo.php');
  23. echo "</div>";
  24. }
  25. elseif($_SESSION['titre_etape']=="Choisissez un modèle" )
  26. {
  27. echo "<div id=\"divcentre\"><h1>$_SESSION[titre_etape]</h1>";
  28. include("modeles.php" );
  29. echo "</div>";
  30. }
  31. elseif($_SESSION['titre_etape']=="Construction de votre document" )
  32. {
  33. include("outils_home.php" );
  34. include("visu.php" );
  35. }
  36. else
  37. {
  38. header("location : $PHP_SELF" );
  39. }
  40. ?>
  41. </div>


 
explication : j'ai une variable $_SESSION['titre_etape'] qui sert de repere dans le site.. quand un forumulaire est validé (action=$PHP_self) cette variable est modifiée et un include différent s'affiche en fonction de cette variable.
 
... je pensais que c t la bonne solution.. sauf que visiblement il faudrait faire ça en deux temps.. un coup la variable change... et ensuite c l'include qui change... mais il faut soit recharger la page.. soit revalider le formulaire...
 
zavez une autre méthode ? ou une astuce pour eviter ce probleme ?
 
thanks!
 
Freed

mood
Publicité
Posté le 24-05-2005 à 15:27:42  profilanswer
 

n°1095133
yakob59
Posté le 24-05-2005 à 15:42:58  profilanswer
 

Je sais pas trop, mais tu devrait commencer par utiliser un switch plutot que les if et elseif, on galère avec ton code là !

n°1095137
freed102
Arayashiki
Posté le 24-05-2005 à 15:44:17  profilanswer
 

oui je sais mais bon le probleme n'est pas là je pense... cela dit t'as raison ! je vais le changer tout de suite en deux temps trois mouvements !

n°1095150
freed102
Arayashiki
Posté le 24-05-2005 à 15:49:16  profilanswer
 

voila :
 

Code :
  1. <?php
  2. switch($_SESSION['titre_etape'])
  3. {
  4. case "":
  5. $_SESSION['titre_etape']="Connectez-vous";
  6. echo "<div id=\"divcentre\"><h1>$_SESSION[titre_etape]</h1>";
  7. include('etape_connect.php');
  8. echo "</div>";
  9. break;
  10. case "Connectez-vous" :
  11. echo "<div id=\"divcentre\"><h1>$_SESSION[titre_etape]</h1>";
  12. include('etape_connect.php');
  13. echo "</div>";
  14. break;
  15. case "Saisie des coordonnées" :
  16. echo "<div id=\"divcentre\"><h1>$_SESSION[titre_etape]</h1>";
  17. include('etape_coordonnees.php');
  18. echo "</div>";
  19. break;
  20. case "Choisissez votre logo" :
  21. echo "<div id=\"divcentre\"><h1>$_SESSION[titre_etape]</h1>";
  22. include('etape_logo.php');
  23. echo "</div>";
  24. break;
  25. case "Choisissez un modèle" :
  26. echo "<div id=\"divcentre\"><h1>$_SESSION[titre_etape]</h1>";
  27. include("modeles.php" );
  28. echo "</div>";
  29. break;
  30. case "Construction de votre document" :
  31. include("outils_home.php" );
  32. include("visu.php" );
  33. break;
  34. default :
  35. echo "<div id=\"divcentre\"><h1>$_SESSION[titre_etape]</h1>";
  36. include('etape_connect.php');
  37. echo "</div>";
  38. break;
  39. }
  40. ?>


Message édité par freed102 le 24-05-2005 à 15:50:42
n°1095183
freed102
Arayashiki
Posté le 24-05-2005 à 16:04:59  profilanswer
 

pour info... dans un include je fais ce genre de choses :
 

Code :
  1. [...]
  2. if ($pwd1 != $pwd2)
  3. {
  4. $field_pwd="Mauvais mot de passe !";
  5. }
  6. if (($pwd1==$pwd2)&&($mail==$mail2))
  7. {
  8. $result = mysql_query("SELECT * FROM clients WHERE email='$mail'" );
  9. $data_id = mysql_fetch_array($result);
  10. $_SESSION['id']= $data_id['id'];
  11. $_SESSION['titre_etape']="Saisie des coordonnées"; //valide pour l'etape suivante
  12. }

n°1095190
yakob59
Posté le 24-05-2005 à 16:09:03  profilanswer
 

pas de header dans ton script ??? c'est peu être çà non? lol

n°1095193
freed102
Arayashiki
Posté le 24-05-2005 à 16:10:07  profilanswer
 

bah je peux pas faire de header... mes include sont dans une page qui contient deja des elements HTML... donc header=DEAD !
et justement j'ai changé ma façon de faire parcequ'on m'a deconseillé d'utiliser les headers et d'utiliser un seul fichier avec des includes en revanche


Message édité par freed102 le 24-05-2005 à 16:11:12
n°1095209
yakob59
Posté le 24-05-2005 à 16:19:50  profilanswer
 

ah oui c'est vrai !  
 
essaie avec ca, mais faut le mettre dans le header de la page :
 
<meta http-equiv="refresh"
 content="1; url=http://tonsite">

n°1095212
freed102
Arayashiki
Posté le 24-05-2005 à 16:21:36  profilanswer
 

oula ! je pense pas que ce soit tres catholique cette methode ! de plus ma page risque de se reloader indefiniment !

n°1095233
freed102
Arayashiki
Posté le 24-05-2005 à 16:35:20  profilanswer
 

j'ai trouvé un moyen de detourner le probleme... c'est d'utiliser une page intermediaire
 
mon form action="$PHP_SELF" devient action="valid.php"
 
... dans valid.php je mets tous les scripts de validation (ps: cette page n'affiche rien.. elle ne fait que tester et valider le formulaire)
et à la fin un header("location: index.php" ); pour retourner sur la page index qui affiche les resultats...
 
qu'en pensez-vous ???


Message édité par freed102 le 24-05-2005 à 16:37:30
mood
Publicité
Posté le 24-05-2005 à 16:35:20  profilanswer
 

n°1095416
freed102
Arayashiki
Posté le 24-05-2005 à 18:23:30  profilanswer
 

rohhh ! ecoutez... je sais pas si vous approuvez cette methode de navigation mais ça marche vraiment bien !!! :bounce:
 
je sais pas si c optimal par contre... car a chaque requete... ya deux pages qui se chargent...

n°1095504
yoyo354
Yoyo, le roi du ...
Posté le 24-05-2005 à 20:15:49  profilanswer
 

C'est très bien à mon goùt et souvent utilisé.
 
C'est toujours mieux qu'une redirection javascript ou meta refresh...

n°1095852
yakob59
Posté le 25-05-2005 à 08:38:03  profilanswer
 

bah voui ! et puis l'important, c'est que ca marche ! ;)

n°1095874
esox_ch
Posté le 25-05-2005 à 08:57:09  profilanswer
 

yakob59 a écrit :

bah voui ! et puis l'important, c'est que ca marche ! ;)


 
Non l'important c'est que ca marche bien pour tout le monde. Ce qui est tres different  :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1096009
yakob59
Posté le 25-05-2005 à 10:03:07  profilanswer
 

si tu l'dis !

n°1096680
freed102
Arayashiki
Posté le 25-05-2005 à 14:39:29  profilanswer
 

esox_ch a écrit :

Non l'important c'est que ca marche bien pour tout le monde. Ce qui est tres different  :o


 
bah à priori ya pas de raison que ça marche pas pour tout le monde... c'est l'avantage du PHP ! c'est le serveur qui travail ! et c pas le navigateur qui reagit ! donc si ça marche pour un... ça marche pour tous !!!
 
non ?

n°1096705
yakob59
Posté le 25-05-2005 à 14:50:50  profilanswer
 

je crois aussi mais apparement esox ne pense pas comme nous !

n°1096708
freed102
Arayashiki
Posté le 25-05-2005 à 14:51:54  profilanswer
 

bah il veut peut etre dire que justement... c en evitant les meta-refresh et les javascript qu'on a plus de chance que ça marche PARTOUT !

n°1096714
yakob59
Posté le 25-05-2005 à 14:54:13  profilanswer
 

certes

n°1096724
freed102
Arayashiki
Posté le 25-05-2005 à 14:57:13  profilanswer
 

et puis l'important c'est que ça marche partout... certes ! mais faut pas non plus que le programme soit une usine à gaz pour le serveur... sinon les visiteurs risquent de fuire ! (c pourquoi je me demande si une action sur la page qui provoque deux évenements est une bonne solution!)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  probleme de validation avec include

 

Sujets relatifs
bug en vc++...probleme de delete [ ]??Problème connexion Access->MySQL
Probleme Iframe et Textarea [Résolu]News avec la fonction include
probleme completement inexplicable avec les sockets sous windows c++probleme .htaccess
Probleme de session avec Firefox et pas avec IEprobleme telnet
Problème avec la commande set Pathprobleme jmf + linux
Plus de sujets relatifs à : probleme de validation avec include


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR