Bourinho Posté 2 Septembre 2006 Posté 2 Septembre 2006 Bonjour à tous, J'utilise actuellement EasyPHP 1.8 et j'ai quelques soucis avec un certains type d'include... Dans mon dossier "MonSite" placé dans le dossier "www" de EasyPHP, j'ai un dossier "hidden" qui contient lui même un dossier "design" (ça donne MonSite/hidden/design) J'ai un fichier "presentation.php" dans "design" dans lequel je souhaitrais inclure "parametres.php" qui lui est placé dans le dossier "hidden". J'ai tenté le code suivant include('../parametres.php'); et sur ma page, je lis: Warning: main(../parametres.php): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\monsite\hidden\design\presentation.php on line 2 J'ai essayé avec un backslash , avec un seul point...et là, je n'ai plus trop d'imagination Il est où le problème? je sais, vers la ligne 2... Mais comment résoudre ce problème? Par avance, merci!
Dan Posté 2 Septembre 2006 Posté 2 Septembre 2006 Bonjour, Ta syntaxe est correcte. Je ne vois qu'une erreur possible dans le nom de fichier parce qu'un include d'un fichier se trouvant à l'échelon supérieur se fait toujours comme ceci: include("../fichier.php"); N'as-tu pas nommé ce fichier "paramètres" ou "parameters" par hasard ? ? Dan
Bourinho Posté 2 Septembre 2006 Auteur Posté 2 Septembre 2006 (modifié) Salut Dan, J'ai bien vérifié les noms... et c'est visiblement les bons... Par contre, j'ai l'impression que le message d'erreur prend en fait plusieurs lignes (je n'avais regardé que la première ) Le voici en version complète : Warning: main(../parametres.php): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\monsite\hidden\design\presentation.php on line 2 Warning: main(): Failed opening '../parametres.php' for inclusion (include_path='.;C:/Program Files/EasyPHP1-8\php\pear\') in c:\program files\easyphp1-8\www\monsite\hidden\design\presentation.php on line 2 Je vais devenir cinglé! [Edit]En fait, quand je vais sur la page "presentation.php", y a pas de soucis... mais quand je souhaite l'inclure, le message d'erreur ci dessus apparait...Bizarre, non?[/Edit] Modifié 2 Septembre 2006 par Bourinho
Dan Posté 2 Septembre 2006 Posté 2 Septembre 2006 As-tu défini des VirtualHost sous easyphp ? Je te pose la question parce que nombre d'utilisateurs de easyphp ne le font pas... Que donne la variable $_SERVER['DOCUMENT_ROOT'] ? Dan
Bourinho Posté 2 Septembre 2006 Auteur Posté 2 Septembre 2006 (modifié) Merci de m'aider... quand, depuis la racine de mon site, je fais echo $_SERVER['DOCUMENT_ROOT'] J'obtiens :c:/program files/easyphp1-8/www (le résultat est le même si je pars de "hidden/design") C'est ce qu'il faut? Modifié 2 Septembre 2006 par Bourinho
Bourinho Posté 4 Septembre 2006 Auteur Posté 4 Septembre 2006 (modifié) Salut à tous, Personne n'a eu ce type de problème auparavant??? Parce que là, c'est un petit peu génant... En fait, je pourrais faire un include('http://.../parametres.php') mais le truc c'est que j'utilise une fonction includesec (pour éviter les inclusions dangereuses...) definie comme suit : function includesec($Chaine){//Pour verifier les include... if (preg_match('!http|ftp!',$Chaine)) //pour ftp, je ne suis pas sur... { return false; } else { include($Chaine); return true; }} Alors, pour le coup, ça fout tout en l'air... C'est quoi des VirtualHost??? A mon avis, je n'en ai pas défini car je ne sais même pas de quoi il s'agit... Modifié 4 Septembre 2006 par Bourinho
captain_torche Posté 4 Septembre 2006 Posté 4 Septembre 2006 Tu pourrais lister les fichiers et dossiers que tu trouves avec la directive "../" ? <?php$dir = '../';$handle = opendir($dir);while($data = readdir($handle)) {echo $data.'<br>';}closedir($handle);?> Si tout se passe normalement (et si j'ai bien compris le souci), tu devrais avoir quelque chose du genre : ... design
Bourinho Posté 4 Septembre 2006 Auteur Posté 4 Septembre 2006 (modifié) Salut, Voilà ce qui s'affiche (parmi d'autres dossiers et fichiers...): . .. design parametres.php Donc, à priori, ça doit être OK...c'est quand même bizarre ce truc... En fait, ce qui m'étonne le plus, c'est que quand je charge la page presentation.php (qui est dans le dossier design), il n'y pas de message d'erreur... (comme quoi l'orthographe du fichier est OK, que le chemin est bon aussi...) et quand je souhaite l'inclure, c'est là que les ennuis commencent! Merci pour votre aide... Modifié 4 Septembre 2006 par Bourinho
Bourinho Posté 4 Septembre 2006 Auteur Posté 4 Septembre 2006 Salut, Dans mon message précédent, j'ai indiqué : Voilà ce qui s'affiche (parmi d'autres dossiers et fichiers...):. .. design parametres.php Mais ça, c'est ce qui s'affiche lorsque je charge "presentation.php" qui fonctionne... par contre, je viens de charger la page "index.php" qui fait un include('hidden/design/presentation.php') Et là, ça donne : . .. MonSite alors, j'ai l'impression que le include('../parametres.php') présent dans 'hidden/design/presentation.php' se fait à partir de là où se trouve 'index.php', c'est à dire la racine du site... J'ai l'impression qu'il faut que je spécifie le dossier hidden/design dans le include_path... Bonne piste? Merci captain_torche d'avoir trouvé la bonne piste...j'ai tout simplement dérapé en l'utilisant! Merci aux autres aussi... on y est presque là je crois!!!
captain_torche Posté 4 Septembre 2006 Posté 4 Septembre 2006 Bah non, ça a l'air normal (si ta page index se trouve dans monSite, et que ce répertoire contient hidden/design). Par contre, je crois comprendre : Tu fais une tentative d'include de parametres.php depuis presentation.php, elle-même incluse dans index.php (c'est bien ça ?) Dans ce cas, il faut que les chemins d'inclusions soient relatifs à index.php.
Bourinho Posté 4 Septembre 2006 Auteur Posté 4 Septembre 2006 Salut, En effet, c'est exactement ça... Il faut donc que les chemins d'inclusions soient relatifs à 'index.php'... bon, bah je viens d'apprendre un truc là... C'est quand même pas très pratique cette affaire car on ne peut pas inclure 'presentation.php' depuis n'importe quel dossier... à moins de mettre une variable avant l'inclusion qui définit de combien de dossier on doit redescendre... Sinon, ma fonction 'includesec' définie un peu plus haut permet d'être tranquille ou alors elle est incomplète? Bon, bah merci à tous pour votre coup de main!!!
Anonymus Posté 4 Septembre 2006 Posté 4 Septembre 2006 Tu devrais rajouter le chemin complet vers le dossier en question Ca te permettrait de savoir exactement où tu en es. Exemple : echo $_SERVER['DOCUMENT_ROOT']."/chemin_absolu/autre_repertoire/index.php"; et donc : include($_SERVER['DOCUMENT_ROOT']."/chemin_absolu/autre_repertoire/index.php");
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant