J'ai ce code de test dans "PAGE A":
<?php
require_once('../mysite/php/classes/eventManager.php');
$x=new EventManager();
$y=$x->loadNumbers();
?>
"eventManager.php" a à l'intérieur d'un require_once:
<?php
require_once('../includes/dbconn.inc');
class EventManager {...}
?>
La structure de mes dossiers est la suivante:
mysite/php/classes folder and includes folder
Si je teste la PAGE A dans un navigateur, je reçois:
Avertissement: require_once (../ includes/dbconn.inc) [function.require-once]: échec de l'ouverture du flux: aucun fichier ou répertoire de ce type dans C:\wamp\www\mysite\php\classes\eventManager.php en ligne 3
Erreur fatale: require_once () [function.require]: Échec de l'ouverture requis '../includes/dbconn.inc' (include_path = '.; C:\php5\pear') dans C:\wamp\www\mysite\php\classes\eventManager.php sur la ligne 3
où est l'erreur?
Merci Luca
Vous devrez créer un lien vers le fichier relatif au fichier qui comprend eventManager.php
(Page A)
Changez votre code derequire_once('../includes/dbconn.inc');
Àrequire_once('../mysite/php/includes/dbconn.inc');
L'erreur explique à peu près quel est le problème: vous essayez d'inclure un fichier qui n'est pas là.
Essayez d'utiliser le chemin complet vers le fichier, en utilisant realpath()
, et utilisez dirname(__FILE__)
pour obtenir votre répertoire actuel:
require_once(realpath(dirname(__FILE__) . '/../includes/dbconn.inc'));
cela fonctionnera aussi
require_once(realpath($_SERVER["DOCUMENT_ROOT"]) .'/mysite/php/includes/dbconn.inc');
set_include_path(get_include_path() . $_SERVER["DOCUMENT_ROOT"] . "/mysite/php/includes/");
Cela peut aussi aider. Voir set_include_path()
Il indique que le fichier C:\wamp\www\mysite\php\includes\dbconn.inc
n'existe pas, donc l'erreur est, il vous manque le fichier.