require_once с подпапками

У меня есть главная папка с двумя подпапками, как показано ниже.

+Home  
 +include  
   - membersite_config.php

+iDiscover  
   -index.php

в index.php я добавил скрипт require_once для доступа к membersite_config.php

<?PHP

require_once($_SERVER['DOCUMENT_ROOT'].'/include/membersite_config.php');
?>

Я получаю следующую ошибку: Предупреждение: require_once(./include/fg_membersite.php): не удалось открыть поток: Нет такого файла или каталога в D:\Home\include\membersite_config.php в строке 2
Неустранимая ошибка: require_once (): Не удалось открыть требуемый файл './include/fg_membersite.php' (include_path='.;C:\php\pear') в D:\Home\include\membersite_config.php в строке 2.

Ошибка говорит Нет такого файла или каталога, в то время как путь "D:\Home\include\membersite_config.php" правильный. Когда я перемещаю index.php в корень, страница работает хорошо.

Я также попытался использовать следующий код, как описано здесь выдает ту же ошибку

<?PHP


define('ROOT', 'D:Home\\');
require_once(ROOT ."/include/membersite_config.php");
?>

Редактировать :

Я тоже пробовал require_once("../include/membersite_config.php"); И выдает ту же ошибку

заранее спасибо


person Mariam    schedule 24.02.2013    source источник
comment
Вы проверяли права доступа к файлам?   -  person Ares    schedule 24.02.2013
comment
Попробуйте require_once(../include/membersite_config.php);   -  person One Man Crew    schedule 24.02.2013
comment
@Ares Да, все работает хорошо, когда я перемещаю index.php в корень.   -  person Mariam    schedule 24.02.2013


Ответы (6)


Вы должны включить вот так

require_once(dirname(__FILE__) . '/include/membersite_config.php');

Потому что DocumentRoot не может быть установлен в httpd.conf

person Winston    schedule 24.02.2013

Ошибка означает, что у вас есть требование в membersite_config.php, которое не работает в строке 2.

person yunzen    schedule 24.02.2013
comment
Я вижу, что это не работает. Пишет, что не удалось открыть поток: Нет такого файла или каталога, хотя каталог существует. Вот почему я спрашиваю, что не так в моем коде - person Mariam; 24.02.2013
comment
Прочитай, что я напечатал. Ошибка не в index.PHP. - person yunzen; 24.02.2013
comment
index.php не может получить доступ к membersite_config.php, когда он находится внутри подпапки iDiscover. Когда я перемещаю index.php в корень. тот же код работает без проблем. - person Mariam; 24.02.2013

Попробуй это:

require_once("../include/membersite_config.php");

не забудьте проверить права доступа к файлу/папке!

person One Man Crew    schedule 24.02.2013
comment
Спасибо. Я пробовал, но выдает ту же ошибку. Разрешение на папку с файлами — полный доступ. И я могу получить доступ к файлу, когда я перемещаю index.php в корень, а не помещаю его в папку iDiscover. - person Mariam; 24.02.2013

Попробуй это:

<?PHP
require_once('../include/membersite_config.php');
?>
person richard    schedule 24.02.2013
comment
Спасибо. Но выдает ту же ошибку - person Mariam; 24.02.2013
comment
Вы размещаете коды здесь?: iDiscover/index.php - person richard; 24.02.2013
comment
да . iDiscover — это подпапка в корневой (домашней) папке. - person Mariam; 24.02.2013
comment
Подтвердите путь: home/iDiscover/index.php или iDiscover/index.php - person richard; 24.02.2013
comment
Физический путь — home/iDiscover/index.php, а путь membersite_config — home/include/membersite_config.php. - person Mariam; 24.02.2013

'..' означает назад

require_once('../include/membersite_config.php');

означает выйти из папки, в которой вы находитесь, затем введите include...

если вам нужно вывести три папки, сделайте это ../../../include... и т. д.

person Abdullah Salma    schedule 24.02.2013

Для отладки попробуйте следующее:

<?php
$dir_files=glob($_SERVER['DOCUMENT_ROOT'].'/include/*');
print_r($dir_files);
?>

после того, как вы запустите этот скрипт, вы увидите, что ваши имена файлов верны.

person Stef Geysels    schedule 24.02.2013
comment
Я попробовал, и файл существует - person Mariam; 24.02.2013
comment
и я полагаю, это пишется точно так же, как membersite_config.php? - person Stef Geysels; 24.02.2013
comment
Если вы запустите membersite_config.php, вы получите какую-либо ошибку? (как предлагает Гвидо Янсен) - person Stef Geysels; 24.02.2013
comment
membersite_config.php работает. и тот же код хорошо работает, когда я перемещаю indexx.php в корневую папку вместо папки iDiscover - person Mariam; 24.02.2013
comment
вы пробовали включить ()? - person Stef Geysels; 24.02.2013