Se connecter avec
S'enregistrer | Connectez-vous

Include et fonction GET

Dernière réponse : dans Programmation

Bonjour, je suis en train de me battre avec ces fonctions.
J'ai les fichiers suivants : menu.php dans le dossier inc, le fichier index.php et deux script pacé dans les dossiers inc/faq/ et inc/help/ ....
Dans mon menu je place :
  1. <a href="index.php?page=1">commande</a><br />
  2. <a href="index.php?page=2">FAQ</a><br/>
  3. <a href="index.php?page=3&index.php">ticket</a><p>
  4. <a href="index.php?page=4">test</a>

dans index.php j'ai :
  1. <?php include("header.php");?>
  2.  
  3. <table width="98%" border="0" cellspacing="0" cellpadding="0">
  4.  
  5. <tr>
  6. <td bgcolor="#333333" width="200" valign="top"><?php include('inc/menu.php'); ?></td>
  7. <td width="690" height="500" valign="top">
  8.  
  9. <?php
  10. // On initialise $page_go___________________________________
  11. $page_go = FALSE;
  12. /*
  13. Si la page est appelée et si l'appel n'est pas vide
  14. ex: index.php?page=
  15. */
  16. if ( isset( $_GET['page'] ) and !empty( $_GET['page'] ) ) {
  17. // on va appeler la page concernée
  18. switch( $_GET['page'] ) {
  19. //------Les pages sont numerotées------\
  20. case 1 : $page_go ='commande1.php';break;
  21.  
  22. case 2 : $page_go ='inc/faq/index.php';break;
  23. case 3 : $page_go ='inc/help/';break;
  24. case 4 : $page_go ='inc/help/test.php';break;
  25. //------Les pages son nommées----------\
  26. //case 'zoulou' : $page_go ='page_d.php';break;
  27. //case 'toto' : $page_go ='page_e.php';break;
  28. }
  29. // si la page appelé n\est pas vide et le fichier concerné existe
  30. if( !empty( $page_go ) and file_exists( $page_go ) ) {
  31. // alors in inclue le fichier
  32. include( $page_go );
  33. // sinon on initialise $page_go
  34. } elseif( $page_go === FALSE ) {
  35. // et on affiche :
  36. echo' <p align="center">Cette page n existe pas</p>';
  37. }
  38. }
  39. else {
  40. // ici on met la page par défaut
  41. include( 'accueil.php' );
  42. }
  43. ?>
  44.  
  45.  
  46. </td>
  47. </tr>
  48. </table>
  49.  
  50. <?php
  51. include("./footer.php");
  52. ?>


Pour le lien test qui pointe vers un page de test placé dans le dossier inc/help/ le lien fonctionne et la fonction ouvre bien cette page, idem pour le lien page default (accueil.php) et le lien commande1.php.
Par contre impossible d'ouvrir les liens qui pointent vers des scripts (FAQ et HELP).
Pour le lien FAQ j'ai une erreur
Citation :
.........../includes/system/codeigniter/CodeIgniter.php on line 38

et pour le lien help j'ai un erreur a la ligne
Citation :
Warning: include(inc/help/) [function.include]: failed to open stream: No such file or directory in /home/xxxx/domains/xxxx.com/public_html/clients/index.php on line 33
ce qui correspond dans le fichier index.php à
  1. include( $page_go );


Merci pour votre aide.

Autres pages sur : include fonction get

Lassé par la pub ? Créez un compte
Expert Programmation

Essaye la solution de n1kko.

  1. case 1 : $page_go = dirname(__FILE__).'/commande1.php';break;
  2. case 2 : $page_go = dirname(__FILE__).'/inc/faq/index.php';break;
  3. case 3 : $page_go = dirname(__FILE__).'/inc/help/';break;
  4. case 4 : $page_go = dirname(__FILE__).'/inc/help/test.php';break;

SiM07 a dit :
Essaye la solution de n1kko.

  1. case 1 : $page_go = dirname(__FILE__).'/commande1.php';break;
  2. case 2 : $page_go = dirname(__FILE__).'/inc/faq/index.php';break;
  3. case 3 : $page_go = dirname(__FILE__).'/inc/help/';break;
  4. case 4 : $page_go = dirname(__FILE__).'/inc/help/test.php';break;


oui sauf que pour le principe, il est préférable de n'appeller dirname(__FILE__) qu'une seule fois parce que c'est un tantinet consomateur de ressources.

Avec un define('ROOT_PATH', dirname(__FILE__)) par exemple.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde