2009-09-13 6 views
0

je l'habitude d'utiliser cette ligne pour importer le fichier de l'extérieur du dossier en cours et il est très bien de travail sur mon serveur hôte localinclude et require problème quand je l'utilise avec le fichier sur le dossier

require("../DataBase.class.php"); 

mais quand je télécharger le script sur mon site, je reçois cet avertissement

Attention: comprennent (../ DataBase.class.php) [function.include]: failed to open stream : Aucun fichier ou répertoire

Répondre

3

Le mode sans échec n'aime pas "../". Donc, vous devriez toujours utiliser quelque chose comme

require_once realpath(dirname(__FILE__) . '/..') . '/file.php'; 
+0

Ceci est un côté très informatif. –

0

Vous recherchez le fichier dans le répertoire parent. Si vous le souhaitez dans l'utilisation du répertoire actuellement:

require 'Database.class.php'; 

Peut-être sur votre serveur web local vous avez une copie dans votre répertoire parent pour une raison qui n'existe pas sur votre serveur distant.

+0

Je suis d'accord avec cela aussi ... –

2

Ce qui se passe probablement est que votre paramètre include_path dans php.ini est différent sur votre serveur que sur votre installation locale de PHP/Apache. Avec cela, gardez à l'esprit que ../ ne pointe pas vers le répertoire en cours dans lequel se trouve le fichier, il pointe vers le répertoire parent du répertoire en cours dans lequel vous vous trouvez. Ce que je vous conseille est de trouver le chemin complet vers votre document racine, 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"); 

?> 
+0

Oh, et si vous avez besoin de savoir ce que le répertoire en cours est que votre script PHP pense qu'il est, l'utilisation getcwd (). Il affichera le chemin complet. Facilite la recherche de l'information dont vous avez besoin! –

Questions connexes