Problème include

Eléphanteau du PHP | 41 Messages

02 nov. 2007, 14:38

Bonjour,

J'ai un problème avec un include.
Je soupçonne php.ini mais je ne sais pas très bien où faire mes réglages.

Voici l'arborescence des mes fichiers en partant du dossier racine:
(2 fichiers et 1 dossier "menu" comprenant 1 fichier)
\index.php
\dvdindex.php
\menu\menu.inc.php


Dans mon fichier index.php
je mets

Code : Tout sélectionner

<?php include("/menu/menu.inc.php");?>
Dans mon fichier dvdindex.php
je mets aussi

Code : Tout sélectionner

<?php include("/menu/menu.inc.php");?>
Je dois travailler avec des références absolues partant de la racine de mon site vu que je vais devoir me balader dans des répertoires et que mon fichier menu.php est aussi dans un répertoire.

Les codes qui sont dans les pages sont vérifiés et fonctionnent.

Mais j'ai le problème suivant quand je démarre ma page index.php ou dvdindex.php:

Code : Tout sélectionner

Warning: include(/menu/menu.inc.php) [function.include]: failed to open stream: No such file or directory in D:\www\LE_BONHEUR_PHP\dvdindex.php on line 17 Warning: include() [function.include]: Failed opening '/menu/menu.inc.php' for inclusion (include_path='c:\wamp\php\PEAR') in D:\www\LE_BONHEUR_PHP\dvdindex.php on line 17
Je travaille avec WAMP.

Quelqu'un peut m'aider? C'est à cause dune config de php.ini?

Merci

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

02 nov. 2007, 15:00

Bonjour,

Il existe deux possibilités pour les chemins:
- travailler avec des chemins relatifs, c'est à dire que la référence est ton fichier actuel
- travailler avec des chemins absolus, c'est à dire que la référence est la racine de ton serveur; dans ton cas, il faut donc commencer par C: vu que tu es sous Windows (=> ça ne correspond en aucun cas au répertoire "de base" de ton site).

En revanche, tu devrais pouvoir te débrouiller avec la variable $_SERVER['DOCUMENT_ROOT'] qui contient le chemin absolu vers la racine de ton serveur web
Modifié en dernier par @rthur le 02 nov. 2007, 17:33, modifié 1 fois.
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 965 Messages

02 nov. 2007, 15:07

ou te creer une variable session si tu les utilise avec l'emplacement par defaut de tes repertoires

style $_SERVER['Url_Base'] ou $_SERVER['Url_include']

comme ca en local ou internet le resultat sera toujours le même juste a changer le nom dans ta variable de session.

Eléphanteau du PHP | 41 Messages

02 nov. 2007, 15:33

OK merci pour certaines clarifications.

Quand je regarde dans phpinfo(), mon DOCUMENT_ROOT = D:/www .
Comme j'ai mis mon site dans un répertoire "LE_BONHEUR_PHP" j'ai donc mis la ligne suivante:

Code : Tout sélectionner

include($_SERVER['DOCUMENT_ROOT']."/LE_BONHEUR_PHP/menu/menu.inc.php");
Grand Merci à vous.

J'ai encore une dernière question:
(Avant le site n'était qu'en html et donc pas problème par rapport au FTP)

Je vais mettre à chaque fois des

Code : Tout sélectionner

include($_SERVER['DOCUMENT_ROOT']."/LE_BONHEUR_PHP/blablabla);
quand je code en local.

Mais quand je voudrai le mettre chez mon hébergeur via le FTP?
Tout mes fichiers se trouveront en local sur
D:/www/LE_BONHEUR_PHP/
LE_BONHEUR_PHP est donc ma "racine" en local.

Il n'existe donc pas de répertoire LE_BONHEUR_PHP chez l'hébergeur
Je devrais changer à chaque page

Code : Tout sélectionner

include($_SERVER['DOCUMENT_ROOT']."/LE_BONHEUR_PHP/menu/menu.inc.php");
par

Code : Tout sélectionner

include($_SERVER['DOCUMENT_ROOT']."/menu/menu.inc.php");
?

C'est un peu niais comme question mais je suis un peu perdu par rapport à certaines définitions.. :oops: