2010-05-12 2 views
2

Ce n'est pas un problème en tant que tel, mais il m'embête et j'apprécierais toute aide. Cela peut être totalement évident mais je ne le vois pas.PHP require/include fonctionne seulement une fois dans le script puis échoue

$root_path = $_SERVER['DOCUMENT_ROOT'] 
require($root_path .'template/header.php') 
require($root_path .'template/footer.php') 

Le script inclura l'un ou l'autre mais pas les deux. Il fonctionnera et inclura l'en-tête mais pas le pied de page, si je les échange, il chargera le pied de page en premier mais pas l'en-tête.

J'ai essayé d'utiliser include au lieu de require mais j'obtiens le même résultat.

Il donne l'erreur allow_url_include = 0. Je sais que celui-ci va le résoudre mais ma question est: pourquoi cela se passe-t-il? Pourquoi inclura-t-il un fichier mais pas l'autre? Y at-il un moyen de les amener à la fois sans tourner allow_url_include (J'essaie d'être soucieux de la sécurité). J'ai PHP 5.3 et je cours WAMP. Merci d'avance pour votre aide!

+0

Afficher le code minimal qui présente le problème. –

+0

Pouvez-vous nous montrer le code exact causant cela? – ryeguy

+0

Veuillez joindre des exemples de code. Y a-t-il une fonction, une classe, une constante dans vos fichiers? Ou incluent-ils un fichier contenant de telles définitions? (les redéfinir pourrait être le problème) Quel est le message d'erreur? – erenon

Répondre

0

Peut-être que $root_path est changé dans le fichier header.php ou footer.php?

0

On dirait que vous redéfinissez $root_path dans le fichier inclus.

0

Il n'y a rien de mal avec ce que vous avez écrit. Comme les autres l'ont dit, quelque chose arrive à $root_path ou le script se termine avant d'arriver à cette inclusion.

Faites un var_dump($root_path) juste au-dessus du pied de page inclus. Si cela se déclenche, vous savez que cela va à l'inclusion. Si cela ne fonctionne toujours pas, faites des échos dans votre pied de page pour voir si cela arrive dans le fichier.

Questions connexes