Require / include
Résolu
Lankou79
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
Lankou79 Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
Lankou79 Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Tout d'abord je tiens à m'excuser si cette question à déjà été posté. J'ai recherché sur le forum et notre ami Google.
Pour vous expliqué ma question, je vous présente le contexte. En regardant des fichier PHP, les personnes qui les ont développé on écrit par exemple :
Je connais et je comprends ce qu'ils font mais le fichier.php en question ne se trouve pas du tout au même niveau que le fichier en php qui l'inclue (monfichier2.php).
Je pense que tout ça est dû à la configuration de Apache. Ils doivent faire un lien (un alias par exemple) entre le dossier qui contient le fichier.php et le dossier qui contient le fichier php qui l'appelle.
Ma question est, si je me suis bien exprimé, que si quelqu'un qui connais le procédé utilisé pouvais me l'expliqué en détails.
Je vous remercie par avance de vos réponse.
PS : si la question a déjà été posée (je m'excuse si c'est le cas), ne me renvoyé pas boulé, m'était juste le lien.
Tout d'abord je tiens à m'excuser si cette question à déjà été posté. J'ai recherché sur le forum et notre ami Google.
Pour vous expliqué ma question, je vous présente le contexte. En regardant des fichier PHP, les personnes qui les ont développé on écrit par exemple :
require_once('monfichier.php')
Je connais et je comprends ce qu'ils font mais le fichier.php en question ne se trouve pas du tout au même niveau que le fichier en php qui l'inclue (monfichier2.php).
- <dossier_include> - monfichier.php - <dossier_script> - monfichier2.php
Je pense que tout ça est dû à la configuration de Apache. Ils doivent faire un lien (un alias par exemple) entre le dossier qui contient le fichier.php et le dossier qui contient le fichier php qui l'appelle.
Ma question est, si je me suis bien exprimé, que si quelqu'un qui connais le procédé utilisé pouvais me l'expliqué en détails.
Je vous remercie par avance de vos réponse.
PS : si la question a déjà été posée (je m'excuse si c'est le cas), ne me renvoyé pas boulé, m'était juste le lien.
A voir également:
- Require / include
- I'm sorry to have to inform you that your message could not be delivered to one or more recipients. it's attached below. for further assistance, please send mail to postmaster. if you do so, please include this problem report. you can delete your own text from the attached returned message ✓ - Forum Mail
- [Latex] problème entre input et include ✓ - Forum Programmation
- Question sur faille include et arborescence. ✓ - Forum Programmation
- PHP: fonction include et liens relatifs ✓ - Forum PHP
- Include un dossier DropBox dans une page web - Forum Webmastering
10 réponses
En creusant un peu la doc, je viens d'apprendre quelque chose
Tu peux modifier la variable de configuration include_path avec la fonction ini_set
Si tu mets dedans le chemin "qui va bien", tu peux ensuite faire des include sans avoir besoin de rappeler les chemins des fichiers inclus
Tu dois pouvoir vérifier si le script que tu as marchait comme ça, mais il y a de fortes chances
Tu peux modifier la variable de configuration include_path avec la fonction ini_set
Si tu mets dedans le chemin "qui va bien", tu peux ensuite faire des include sans avoir besoin de rappeler les chemins des fichiers inclus
Tu dois pouvoir vérifier si le script que tu as marchait comme ça, mais il y a de fortes chances
Bonjour
Je ne pense pas qu'Apache y soit pour grand chose. Un include PHP est une histoire de fichiers, géré par le système de fichiers de l'ordinateur, pas par le serveur web.
Le comportement que tu décris s'explique si monfichier2.php est lui-même inclus dans un fichier qui est dans le même dossier que monfichier.php. Car le répertoire courant qui sert pour les adressages relatifs est déterminé par le script appelé et reste le même quand on "entre" dans les include.
Je ne pense pas qu'Apache y soit pour grand chose. Un include PHP est une histoire de fichiers, géré par le système de fichiers de l'ordinateur, pas par le serveur web.
Le comportement que tu décris s'explique si monfichier2.php est lui-même inclus dans un fichier qui est dans le même dossier que monfichier.php. Car le répertoire courant qui sert pour les adressages relatifs est déterminé par le script appelé et reste le même quand on "entre" dans les include.
Merci pour ta réponse.
Mais en faite, le fichier à inclure se trouve dans un dossier en l'autre fichier dans un autre. Le truc c'est que dans le dernier, il est écrit require_onde('monfichier.php'). Moi j'écrirai plutôt requi_once('../include/monfichier.php')
en disant que mon fichier à inclure se trouve dans /include.
Mais en faite, le fichier à inclure se trouve dans un dossier en l'autre fichier dans un autre. Le truc c'est que dans le dernier, il est écrit require_onde('monfichier.php'). Moi j'écrirai plutôt requi_once('../include/monfichier.php')
en disant que mon fichier à inclure se trouve dans /include.
J'avais bien compris ce que tu voulais dire.
Le scipt appelé était bien monfichier2.php, ou bien monfichier2.php était-il lui-même inclus dans un autre script ?
Le scipt appelé était bien monfichier2.php, ou bien monfichier2.php était-il lui-même inclus dans un autre script ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
si j'ai bien tout compris tu fait un include qui ne fonctionne pas ???
Comme le dis tres justement le père , apache n'y est absolument pour rien.Ce n'est qu'une question de chemin
dans la page ou tu a besoins de ton include tu met simplement
ca c'est une solution à la sauvage, tu a une autre solution plus propre , faire un fichier fonctions.php dans lequel tu met toutes tes fonctions
et a chaque debut de script tu n'appelle qu'un seul fichier..fonctions.php
Comme le dis tres justement le père , apache n'y est absolument pour rien.Ce n'est qu'une question de chemin
dans la page ou tu a besoins de ton include tu met simplement
require_once('monfichier1.php'); require_once('monfichier2.php'); etc...
ca c'est une solution à la sauvage, tu a une autre solution plus propre , faire un fichier fonctions.php dans lequel tu met toutes tes fonctions
et a chaque debut de script tu n'appelle qu'un seul fichier..fonctions.php
require_once('fonctions.php');
Je suis d'accord avec toi lewis34 mais le truc en faite, c'est que j'ai un dossier include avec function.php par exemple. Ensuite, j'ai un dossier script qui contient lui même un dossier contact et un dossier aganda par exemple. C'est deux derniers dossiers contient des fichier.php qui doivent inclure function.php.
Le truc c'est que j'ai déja vu des fichier php avec seulement require_once('function.php') alors qu'il est dans un autre dossier. Normalement, il faudrai faire requi_once('../../include/function.php') pour que cela fonctionne.
/include et /script se trouvent au même niveau d'arborescence.
Le truc c'est que j'ai déja vu des fichier php avec seulement require_once('function.php') alors qu'il est dans un autre dossier. Normalement, il faudrai faire requi_once('../../include/function.php') pour que cela fonctionne.
/include et /script se trouvent au même niveau d'arborescence.
Voila c'est exactement ça que je voulais. Par contre, le chemin fonctionnera aussi bien pour include que pour require ?
Bon voila j'ai suivi les indications que tu m'a donné et j'ai trouvé la solution.
Dans le fichier php.ini qui se trouve dans Apache2/bin/
Attention sous UNIX, c'est des '/' et pour Windows c'est des '\' dans le chemin.
Dans le fichier php.ini qui se trouve dans Apache2/bin/
;;;;;;;;;;;;;;;;;;;;;;;;; ; Paths and Directories ; ;;;;;;;;;;;;;;;;;;;;;;;;; ; UNIX: "/path1:/path2" ;include_path = ".:***** Le chemin du dossier qui contient tous les fichiers include.*****" ; ; Windows: "\path1;\path2" include_path = ".; ***** Le chemin du dossier qui contient tous les fichiers include.*****"
Attention sous UNIX, c'est des '/' et pour Windows c'est des '\' dans le chemin.
Je n'ai pas fait l'essai spécialement pour le include_path, mais toutes les commandes relatives aux chemins en Apache et PHP fonctionnent aussi bien avec / qu'avec \ pour windows. C'est étonnant qu'il y ait besoin d'une distinction à ce niveau là. As-tu fait l'essai ?