Include et path

Eléphant du PHP | 396 Messages

22 juil. 2008, 17:49

Bonjour à tous

Un petit truc que je pige pas avec des include()

J'ai file1.php à la racine, un repertoire include contenant file2.php et file3.php

Dans file1.php j'ai
include('./include/file2.php');
Dans file2.php j'ai
include('file3.php');
En local aucun soucis.
Sur un serveur que j'ai chez OVH, pas de problème non plus.
Mais j'ai un autre serveur chez OVH où je me tape une erreur
open_basedir restriction in effect. File(/file3.php) is not within the allowed path(s)
Qu'est-ce qui peut faire que dans les 1er cas cela fonctionne et pas dans le 3ème? Une config php?

Petit nouveau ! | 1 Messages

24 juil. 2008, 10:56

Salut

oui open base_dir est une configuration ayant attrait à la sécurité. Il limite l'accès aux ressources dans les répertoires "non authorisées" lors de l'utilisations des fonctions comme include, fopen etc... Dans ton cas, pour je ne sais quelle raison, ton inlude semble vouloir attaquer un fichier à la racine du serveur, ce qui n'est bien sur pas un dossier authorisé.

Eléphant du PHP | 396 Messages

24 juil. 2008, 11:14

Effectivement, j'ai du neutraliser open_basedir en mettant none comme valeur.
Ce que je ne saisi pas c'est que mon fichier inclus ne fait qu'un simple echo et je ne vois pas pourquoi il va chercher à la racine quoi que ce soit...

ViPHP
ViPHP | 5924 Messages

24 juil. 2008, 12:54

Vérifie l'include_path pour cela...

Eléphant du PHP | 396 Messages

24 juil. 2008, 13:59

L'include path est .:
Cela devrait fonctionner.

ViPHP
ViPHP | 5924 Messages

24 juil. 2008, 14:45

Bizarre. Bah en tout cas théoriquement si tu modifies l'open_basedir cela fonctionnera.

Eléphant du PHP | 396 Messages

24 juil. 2008, 14:59

Oui ça fonctionne avec none.
Mais je ne saisi toujours pas pourquoi ça ne veut pas avec la valeur de base.