web-dev-qa-db-fra.com

require_once: échec d'ouverture du flux: aucun fichier ou répertoire de ce type

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

16
luca

Vous devrez créer un lien vers le fichier relatif au fichier qui comprend eventManager.php (Page A)

Changez votre code de
require_once('../includes/dbconn.inc');

À
require_once('../mysite/php/includes/dbconn.inc');

16
Michiel Pater

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'));
13
Aron Rotteveel

cela fonctionnera aussi

 require_once(realpath($_SERVER["DOCUMENT_ROOT"]) .'/mysite/php/includes/dbconn.inc');
4
Csharls

set_include_path(get_include_path() . $_SERVER["DOCUMENT_ROOT"] . "/mysite/php/includes/");

Cela peut aussi aider. Voir set_include_path()

1
Hao Zonggang

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.

1
Benubird