Votre question

Include et fonction GET

Tags :
  • Php
  • Programmation
Dernière réponse : dans Programmation
16 Octobre 2009 10:54:11

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

16 Octobre 2009 11:33:02

Essaye plutôt d'utiliser des paths absolus (le relatif c'est le mal)

Éventuellement an te créant une constante dans laquelle tu stockes dirname(__FILE__) de ta racine d'application.
m
0
l
16 Octobre 2009 13:08:21

Tout d'abord merci pour ta réponse.
Tu peux préciser
Citation :
Éventuellement an te créant une constante dans laquelle tu stockes dirname(__FILE__) de ta racine d'application.
Merci
m
0
l
Contenus similaires
16 Octobre 2009 13:17:38

Bon j'ai remplacé pour la case 2 de l'index.php par :
case 2 :
  1. $page_go ='/home/webamax/domains/webamax.com/public_html/clients/inc/faq/index.php';break;


Mais ca change toujours rien , la même erreur ? :cry: 
m
0
l
20 Octobre 2009 12:16:56

Possible de voir ton arborescence de fichiers ?
m
0
l
a c 145 L Programmation
20 Octobre 2009 12:21:00

Je tiens à te signaler que dans le cas 3, tu tentes d'inclure le répertoire help (qui n'est pas un fichier), ton &index.php passé en url ne donne rien et ne sera jamais exploité.
m
0
l
20 Octobre 2009 17:48:03

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;
m
0
l
20 Octobre 2009 18:36:11

Merci je test et vous tiens au courant.. Merci encore
m
0
l
12 Novembre 2009 10:10:08

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.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS