Problème avec des include...

Petit nouveau ! | 2 Messages

24 janv. 2006, 13:59

Voilà le problème, mon site fonctionne depuis longtemps avec un répertoire sécurisé dans lequel sont placés tous les fichiers que j'appelle avec la fonction « include".
Mon include_path point vers ce dossier à la racine, il n'y a pas de problème...

Je viens d'installer un script de petites annonces qui contient pleins d'include, et évidemment le serveur ne va pas chercher les fichiers où il faut...

Alors je ne sais pas comment régler ce problème.

Quand il y a par exemple :
include("admin/config/general.inc.php");

il va chercher dans http://www.monsite.com/rep_désigné_par_include_path/

alors qu'il devrait aller dans http://www.monsite.com/rep/rep/

Je peux pas changer l'include_path, sinon c'est tout le reste du site qui marche plus...

Je peux pas faire un truc du style .././ ou ./../ pour lui dire de sortir du répertoire sécurisé puis de prendre le bon chemin ?

Merci de m'aider je n'ai aucune solution et je galère.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 janv. 2006, 15:00

Tu peut utiliser les chemins absolu depuis la racine de ton serveur
/home/rep/rep/...
Car la fonction include va chercher :
- dans le répertoire courant
- dans le include_path
- à la racine du serveur
Les fichiers à inclure sont d'abord recherchés dans le dossier désigné par include_path, relativement au dossier courant, puis dans include_path, relativement au dossier de travail du script. Par exemple, si include_path est ., que le dossier de travail est /www/, et que vous incluez le fichier include/a.php et qu'il y a une instruction include "b.php" dans ce fichier, alors b.php est d'abord recherché dans /www/, puis dans /www/include/. Si le nom du fichier commence par ./ ou ../, il est cherché uniquement dans l'include_path relatif au dossier courant d'exécution.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 2 Messages

24 janv. 2006, 18:59

Concrétement, mon application php est dans le dossier :
http://www.monsite.com/rep/

Mon include path donne dans le dossier :
http://www.monsite.com/repsecure/

Quand mon application veut inclure un fichier qui est dans :
http://www.monsite.com/rep/admin/

et qu'elle marque include "admin/fichier.php", je dois mettre quoi ?

Merci !