inclure et exiger un problème lorsque je l'utilise avec un fichier hors du dossier
Question
J'utilise généralement cette ligne pour importer un fichier hors du dossier actuel et tout fonctionne correctement sur mon serveur hôte local
require("../DataBase.class.php");
mais lorsque je télécharge le script sur mon site Web, je reçois cet avertissement
Attention: include (../ DataBase.class.php) [function.include]: échec de l'ouverture stream: Aucun fichier ou répertoire de ce type
La solution
Le mode sans échec n'aime pas " ../" ;. Donc, vous devriez toujours utiliser quelque chose comme
require_once realpath(dirname(__FILE__) . '/..') . '/file.php';
Autres conseils
Ce qui se passe probablement est que votre paramètre include_path dans php.ini est différent de votre serveur que de votre installation locale de PHP / Apache. Par ailleurs, gardez à l’esprit que ../ ne pointe pas vers le répertoire actuel dans lequel se trouve le fichier, mais vers le répertoire parent du répertoire dans lequel vous vous trouvez. Ce que je vous conseillerais est de connaître le chemin complet la racine de votre document, puis en incluant vos fichiers comme ceci:
<?php
$full_path = "/var/www/htdocs"; // this should be your website's full path
require( $full_path . "/DataBase.class.php" );
?>
Vous recherchez le fichier dans le répertoire parent. Si vous le souhaitez dans le répertoire actuel, utilisez:
require 'Database.class.php';
Sur votre serveur Web local, vous en avez peut-être une copie dans votre répertoire parent pour une raison qui n'existe pas sur votre serveur distant.