Que signifie cette erreur ? [ PHP ] - Programmation
Marsh Posté le 16-11-2001 à 01:03:07
apparemment, php est configuré (compilé ?) pour que le include ne se fasse que avec un fichier du même niveau :
open_basedir string
Limite l'espace oú PHP peut ouvrir des fichiers.
Lorsqu'un script essaie d'ouvrir un fichier avec les fonctions fopen ou gzopen (par exemple), la localisation du fichier est vérifiée. Si ce fichier est hors du dossier cité dans cette directive, PHP refusera de l'ouvrir. Tous les liens symboliques sont résolus, et subissent aussi la restriction.
La valeurs spéciale . indique que le dossier courant du script est utilisé comme open_basedir.
Sous Windows, séparez les noms de dossiers par un point virgule (. Sur les autres systèmes, séparez les noms de dossiers par des deux points (. Lorsque PHP est un module Apache, la valeur de la directive open_basedir des dossiers parents sont automatiquement hérités par les fils.
Note : Le support pour les dossiers multiples a été ajouté dans 3.0.7.
La valeur par défaut est : libre accès à tous les fichiers.
Marsh Posté le 16-11-2001 à 01:06:23
Sh@rdar a écrit a écrit : apparemment, php est configuré (compilé ?) pour que le include ne se fasse que avec un fichier du même niveau : open_basedir string Limite l'espace oú PHP peut ouvrir des fichiers. Lorsqu'un script essaie d'ouvrir un fichier avec les fonctions fopen ou gzopen (par exemple), la localisation du fichier est vérifiée. Si ce fichier est hors du dossier cité dans cette directive, PHP refusera de l'ouvrir. Tous les liens symboliques sont résolus, et subissent aussi la restriction. La valeurs spéciale . indique que le dossier courant du script est utilisé comme open_basedir. Sous Windows, séparez les noms de dossiers par un point virgule (. Sur les autres systèmes, séparez les noms de dossiers par des deux points (. Lorsque PHP est un module Apache, la valeur de la directive open_basedir des dossiers parents sont automatiquement hérités par les fils. Note : Le support pour les dossiers multiples a été ajouté dans 3.0.7. La valeur par défaut est : libre accès à tous les fichiers. |
ouch! c hard... donc la valeur ":" je dois la spécifier où ??
(je débute en php )
[edtdd]--Message édité par Pinzo--[/edtdd]
Marsh Posté le 16-11-2001 à 01:10:53
nan ça se joue au niveau de la conf du serveur, donc php.ini ou option de compilation dans certains cas.
sinon regarde avec phpinfo() ce que ça sort comme infos.
Marsh Posté le 16-11-2001 à 01:14:49
Sh@rdar a écrit a écrit : nan ça se joue au niveau de la conf du serveur, donc php.ini ou option de compilation dans certains cas. sinon regarde avec phpinfo() ce que ça sort comme infos. |
Tu pourrais m'expliquer ca avec un peu plus de détails ? car je débute vraiment et le php je le connais pas encore (les fonctions)
Marsh Posté le 16-11-2001 à 01:20:07
le serveur sur lequel tu essaye un include est configuré pour ne l'accepter que dans certains répertoires (uniquement le rep courant ou bien un autre spécifié dans la config du serveur même).
tu pourras connaitre les directives en lancant un script avec juste <? phpinfo() ?> dedans, ça va te sortir un récap de la config php du serveur.
si jamais le include n'est possible que dans le rep courant : 2 solutions.
1 - tu déplace tes fichiers pour que ça fonctionne
2 - tu demande à l'administrateur du serveur qu'il change la configuration (moins probable)
Marsh Posté le 16-11-2001 à 01:21:10
Ok alors je l'ai fait, j'ai une page avec une multitude d'infos. où est-ce que je vérifie cette histoire de restrictions ?
[edtdd]--Message édité par Pinzo--[/edtdd]
Marsh Posté le 16-11-2001 à 01:27:06
bin tu lis un peu tout
tu auras une ligne comme ça : open_basedir
no value no value
sauf que toi tu devrais avoir qq chose plutôt que no value.
Marsh Posté le 16-11-2001 à 01:28:04
Ah, a la ligne "open_basedir" il y a "/web/sites" dans la colonne "Local Value" et "no value" dans la colonne "Master Value".....
Marsh Posté le 16-11-2001 à 01:30:44
donc ça veut dire que tu ne peux faire d'include que de fichiers situés dans ce fameux répertoire du serveur.
en regardans en bas à la ligne path_info tu sauras où ce situe ton script par rapport à l'arborescence du serveur.
Marsh Posté le 16-11-2001 à 01:34:57
Sh@rdar a écrit a écrit : donc ça veut dire que tu ne peux faire d'include que de fichiers situés dans ce fameux répertoire du serveur. en regardans en bas à la ligne path_info tu sauras où ce situe ton script par rapport à l'arborescence du serveur. |
Ok mais il y a un truc que je comprends pas. Sur cette même page j'ai mis <?php include "html/links.htm";?> et bizarrement ça marche. Et pourtant "html" c'est un autre répertoire....
Marsh Posté le 16-11-2001 à 01:44:51
ICQ 99174266 ça sera plus pratique
Marsh Posté le 16-11-2001 à 00:56:11
Salut. J'ai fait appel à la fonction "include" pour placer l'index des news sur la page d'accueil d'un site. J'ai crée et configuré les tables (2) et j'ai tout uploadé au bon endroit, mais j'ai cette erreur :
Warning: open_basedir restriction in effect. File is in wrong directory in /web/sites/302/login/www.site.com/news/news.php3 on line 2
Qu'est-ce qu'elle signifie ? la ligne 2 du fichier news.php3 va chercher les informations placées dans le config.inc.php3 pourtant celui-ci est parfaitement bien configuré....
Help please
[edtdd]--Message édité par Pinzo--[/edtdd]
---------------
“I'll thank you very much.”