[RESOLU] problème chemin relatif, / manquant

Petit nouveau ! | 3 Messages

30 oct. 2015, 12:35

Bonjour,

je rencontre ce souci : la construction d'un chemin relatif ne se fait pas correctement, il manque un /.

Voici mon arborescence de fichiers :
/var/www/outils/annuaire/index.php
/var/www/outils/annuaire/config.php
/var/www/outils/configs/acces.inc.php (config partagé par plusieurs outils)

Dans Index.php :

Code : Tout sélectionner

require_once "config.php";
Dans config.php

Code : Tout sélectionner

require_once("../configs/acces.inc.php");
je dois donc remonter d'un cran pour trouver le dossier config et accéder à acces.inc.php.
Mais ça ne fonctionne pas, j'ai cette erreur :

Code : Tout sélectionner

[30-Oct-2015 10:46:57] PHP Warning: require_once(/var/wwwoutils/configs/acces.inc.php): failed to open stream: No such file or directory in /var/www/outils/configs/needed/class.htmlinterface.php on line 9 [30-Oct-2015 10:46:57] PHP Fatal error: require_once(): Failed opening required '/var/wwwoutils/configs/acces.inc.php' (include_path='.:/usr/share/php:/usr/share/pear:/var/www/outils:/var/www/outils/configs') in /var/www/outils/configs/needed/class.htmlinterface.php on line 9
On voit bien qu'il "zappe" le / entre www et outils. Pourquoi ? :cry:
J'ai essayé avec cette syntaxe :

Code : Tout sélectionner

require_once($_SERVER['DOCUMENT_ROOT']."/outils/configs/acces.inc.php");
Idem. (avec ou sans / )

Code : Tout sélectionner

[30-Oct-2015 10:52:46] PHP Warning: require_once(/var/wwwoutils/configs/acces.inc.php): failed to open stream: No such file or directory in /var/www/outils/configs/needed/class.htmlinterface.php on line 9 [30-Oct-2015 10:52:46] PHP Fatal error: require_once(): Failed opening required '/var/wwwoutils/configs/acces.inc.php' (include_path='.:/usr/share/php:/usr/share/pear:/var/www/outils:/var/www/outils/configs') in /var/www/outils/configs/needed/class.htmlinterface.php on line 9
Et si j'ai le vice de mettre un point devant le / incriminé, comme ça :

Code : Tout sélectionner

require_once($_SERVER['DOCUMENT_ROOT']."./outils/configs/acces.inc.php");
D'un coup, il me retrouve le / !!!!

Code : Tout sélectionner

[30-Oct-2015 10:53:25] PHP Warning: require_once(/var/www./outils/configs/acces.inc.php): failed to open stream: No such file or directory in /var/www/outils/annuaireEtbs/config.php on line 9 [30-Oct-2015 10:53:25] PHP Fatal error: require_once(): Failed opening required '/var/www./outils/configs/acces.inc.php' (include_path='.:/usr/share/php:/usr/share/pear:/var/www/outils:/var/www/outils/configs') in /var/www/outils/annuaireEtbs/config.php on line 9
Et si j'enlève juste le point, le / disparait.

Ce code fonctionne parfaitement sur un autre serveur (on change de serveur physique). On a donc réinstaller le sytème à l'identique pour un parfaite compatibilité, mais ça ne fonctionne pas :( Why ? :cry: :cry:

Merci de votre aide.
Modifié en dernier par vincentvalentine le 30 oct. 2015, 14:53, modifié 2 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

30 oct. 2015, 12:45

Bonjour,
Voici mon arborescence de fichiers : [...]
/var/www/outils/config/acces.inc.php (config partagé par plusieurs outils)

Dans config.php

Code : Tout sélectionner

require_once("../configs/acces.inc.php");
Sauf si c'est une faute de frappe sur le forum, à première vue, il manque un "s" à ton répertoire config.



Par ailleurs, vu le message d'erreur, tu as déjà ton répertoire configs/ dans ton include_path;
Par conséquent, tu peux faire ton require juste avec le nom du fichier sans te préoccuper de son emplacement relatif :

Code : Tout sélectionner

require_once("acces.inc.php");

(Mais ça ne répondra pas à ta question de slash qui semble bizarrement disparaitre)
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 3 Messages

30 oct. 2015, 13:06

Sauf si c'est une faute de frappe sur le forum, à première vue, il manque un "s" à ton répertoire config.
Oui, faute de frappe, je corrige.
Par conséquent, tu peux faire ton require juste avec le nom du fichier sans te préoccuper de son emplacement relatif :
Merci pour l'info.

Effectivement, ça ne corrige pas mon / qui disparait :'(

ynx
Mammouth du PHP | 586 Messages

30 oct. 2015, 16:58

Salut,

La première erreur ne concerne pas le fichier config.php mais le fichier class.htmlinterface.php on line 9 (cf. le message d'erreur).
La troisième erreur de ton message confirme bien ceci.

Tu dois donc avoir un include sans le fameux / dans le fichier class.htmlinterface.php ;)

Bonne journée

Petit nouveau ! | 3 Messages

03 nov. 2015, 15:19

Merci pour ta réponse, c'était bien dans class.htmlinterface.php le souci. Deux require sans /