Question

hai. J'ai un site qui est vraiment bizarre, et maintenant me fait mal. Ceci est une structure simplifiée

public_html
- adm
--- raport
------ raportpdf.php
--- class
------ Bonus
--------- Bonus_DAO.class.php 
------ config.php
--- raport.php
- index.php

Alors.Index.php est un chargeur géant.Il a des lignes: (mais je ne pense pas qu'ils font diffrence)

set_include_path('lib/DB' . PATH_SEPARATOR . get_include_path());
set_include_path('lib/PHPLOT' . PATH_SEPARATOR . get_include_path());
set_include_path('config' . PATH_SEPARATOR . get_include_path());
set_include_path('view' . PATH_SEPARATOR . get_include_path());
set_include_path('controller' . PATH_SEPARATOR . get_include_path());
set_include_path('model' . PATH_SEPARATOR . get_include_path());

à l'intérieur de bonus_dao.class.php est quelque chose comme

require_once('./adm/class/config.php');

RaportPDF.php s'appelle via index.php - il envoie son contenu sans erreur de courrier. Mais quand je veux accéder à raport.php, j'ai une erreur comme:

Warning: require_once(./adm/class/config.php) [function.require-once]: failed to open stream: No such file or directory in /home/panele/domains/blahblah/public_html/adm/class/Bonus/Bonus_DAO.class.php  on line 2

Fatal error: require_once() [function.require]: Failed opening required './adm/class/config.php' (include_path='.:/usr/local/lib/php') in /home/panele/domains/blahblah/public_html/adm/class/Bonus/Bonus_DAO.class.php on line 2

Comment puis-je résoudre ce problème?

Était-ce utile?

La solution

Insérez une ligne telle que la suivante dans un fichier incluse dans cette structure de la vôtre (ce fichier inclus doit être localisé dans votre répertoire racine, quelque chose comme un config.php ou j'utilise habituellement init.php).

define("ROOT_DIR",dirname(__FILE__));

Ensuite, où vous recevez les erreurs (ou pour la synonymie de votre code dans votre code - n'importe où vous avez besoin () / Inclure ()), ajoutez root_dir. "/ chemin / vers / fichier" avant de le faire. Ce que cela fait est de donner le chemin absolu vers le répertoire racine, puis vous spécifiez simplement le répertoire dans la racine que vous recherchez. Par exemple, mon répertoire racine est "/ home2 / exemple". Maintenant, j'insère cette ligne dans un fichier que j'ai inclus, etc. et modifier la ligne requise sur ceci:

require_once(ROOT_DIR."/adm/class/config.php");

La ligne ci-dessus se traduit par cela (en supposant que j'ai utilisé la définition (); instruction dans un fichier situé dans / home2 / exemple)

require_once("/home2/example/adm/class/config.php");

Donc, fondamentalement, il s'agit d'un moyen facile de donner des chemins statiques un élément dynamique afin que vous ne puissiez plus rencontrer ce problème!

bonne chance!
Dennis m.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top