sguillard Posté 25 Octobre 2007 Posté 25 Octobre 2007 Bonjour, Je viens de commencer mon site en PHP et contrairement à d'habitude la racine du site n'a pas l'air d'être mon repertoire "www" où est installé mon "easyphp" à savoir "D:\perso\EasyPHP1-8\www". En effet j'ai créé une page "accueil.php" dans mon repertoire de base "www" avec un "<? include "/generic/menu.php" ?>" et il ne trouve pas mon fichier "D:\perso\EasyPHP1-8\www\generic\menu.php". J'ai l'erreur suivante : Warning: main(/generic/menu.php): failed to open stream: No such file or directory in d:\perso\easyphp1-8\www\accueil.php on line 9 Warning: main(): Failed opening '/generic/menu.php' for inclusion (include_path='.;D:\perso\EASYPH~1\\php\pear\') in d:\perso\easyphp1-8\www\accueil.php on line 9 Une idée sur la question ? Je dois definir mon repertoire racine (genre document_root) dans un fichier de conf ? Ce n'est pas fait dans l'instal de base ? Merci
Callisto Posté 25 Octobre 2007 Posté 25 Octobre 2007 Sous Linux, je te dirais certainement d'enlever le "/" initial dans "/generic/menu.php", mais sous Windows il se peut que la syntaxe pour les chemins de fichiers suive une autre logique. Pour ne rien laisser au hasard, essaye quand même avec : <? include "generic/menu.php" ?>
sguillard Posté 25 Octobre 2007 Auteur Posté 25 Octobre 2007 effectivement ca fonctionne comme cela pour ma page d'accueil mais le probleme c'est que cet "include" va se retrouver dans différentes pages qui seront dans des sous reperoitoires. J'ai donc besoin d'un chemin absolu (par rapport à la racine de mon site). Par ailleurs comme tu fais reference à UNIX, comment gérer les noms de chemin entre un dev sous windows sur mon PC (avec des "\") et le passage en "prod" chez mon hebergeur sous UNIX (avec des "/") !!!
Callisto Posté 25 Octobre 2007 Posté 25 Octobre 2007 Il me semble qu'à partir de Windows 2000/XP, php ne fait pas la différence entre les slash "/" et les anti-slash "\". La preuve, le bout de code que je t'ai donné fonctionne sous windows avec des "/". Donc, à moins que tu ne sois avec un Windows 95/95/Me/..., tu dois pouvoir utiliser les slash comme sous UNIX. Pour ce qui est du chemin absolu, en me basant encore une fois sur le comportement de Linux, l'utilisation du "/" te fait remonter au tout début de l'arborescence, c'est à dire dans ton cas, à l'unité D:. Autant donc essayer avec une syntaxe plus familière à Windows : <? include "d:\perso\easyphp1-8\www\generic\menu.php"; ?> Evidemment, ça n'arrange pas la compatibilité avec ton hébergeur. Pour définir l'équivalent d'un DocumentRoot, tu as la directive de configuration doc_root, mais je ne l'ai jamais utilisée. Bonne chance
sguillard Posté 25 Octobre 2007 Auteur Posté 25 Octobre 2007 il y a plusieurs php.ini (apache, conf_files et php). J'ai tenté celui dans le repertoire "php" avec le ligne suivante mais pas plus de succes doc_root = "D:\perso\EasyPHP1-8\www" Des spécialistes de la question ?
PhY Posté 25 Octobre 2007 Posté 25 Octobre 2007 Salut, Je me suis pris 15 000 fois la tête à propos de ce sujet pour l'élaboration d'un nouveau site en php avec les fameux includes avec des pages dans différents répertoires J'ai craqué. Voici ce que j'ai fait : toutes les includes dans "includes/fichier.php" toutes les pages xhtml à la racine du site (testé sur easyphp et sur un dossier "test" chez free) bon courage bye
sguillard Posté 25 Octobre 2007 Auteur Posté 25 Octobre 2007 Merci pour l'info, ça m'évitera 15 000 prises de tête Je garde ça sous le coude en priant à une eventuelle solution. Est ce que quelqu'un a poussé jusqu'à 20 000 prises de tête et en a soorti une soltuion ?
sguillard Posté 26 Octobre 2007 Auteur Posté 26 Octobre 2007 En surfant sur le net j'ai trouvé une solution donc je vous la livre : <? include ($_SERVER["DOCUMENT_ROOT"]."/generic/menu.php") ?> ca fonctionne sur mon PC en windows et chez mon hebergeur.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant