Page 1 sur 1

Include d'un fichier qui a un include

Posté : 28 mai 2019, 01:53
par Couin
HELLOOO :D

Je galère sur un souci encore une fois :(

Dans un répertoire /tchat avec dedans des fichiers gérant l'authentification et le cookie.
Pour simplifier l'exemple, disons qu'il y a un fichier a.php contenant :

Code : Tout sélectionner

include('b.php');
Le fichier index.php a

Code : Tout sélectionner

include('a.php');
Dans un autre répertoire /submit, dans lequel j'ai un script pour soumettre des musiques, et qui permet au visiteur d'associer ses soumissions à son compte tchat. De ce fait, j'ai une copie des fichiers a.php et b.php dans le répertoire /submit et je les utilise de la même façon avec

Code : Tout sélectionner

include('a.php');
dans index.php .
Jusque là, ça va.

J'aimerais cependant factoriser le truc en utilisant seulement les fichiers a.php et b.php du répertoire /tchat donc dans index.php je mets

Code : Tout sélectionner

include('../tchat/a.php');
Problème le fichier b.php (celui dans /tchat) n'est pas trouvé, à priori parce que l'include de a.php qui est dans /submit/index.php fait que le b.php est attendu dans submit et non tchat.

Y a-t-il une solution en évitant de modifier le fichier a.php ?

Merkouiiiiin :)

Re: Include d'un fichier qui a un include

Posté : 28 mai 2019, 02:47
par Saian
Sans modifier le fichier a.php non. Tu dois modifier l'include dans a.php en include(__DIR__.'b.php') ainsi quelque soit le fichier depuis lequel a.php est inclus le chemin vers le fichier b.php sera tjrs le bon (tant qu'il est dans le même répertoire que a.php, sinon tu corriges le chemin après __DIR__ en partant du dossier de a.php). ^^

Re: Include d'un fichier qui a un include

Posté : 28 mai 2019, 09:22
par @rthur
Une autre solution serait aussi de définir un répertoire fixe dans lequel tu mettrais tous tes fichiers à inclure.
Ça peut se faire dans le php.ini via la directive include_path, ou sinon via la fonction set_include_path()
http://php.net/set_include_path

Re: Include d'un fichier qui a un include

Posté : 29 mai 2019, 01:47
par Couin
Hello

Merci pour vos réponses , à priori set_include_path a l'air de solutionner le souci :)

Merkouin ! :D