2013-08-02 16 views
0

Я разрабатываю приложение и использую подпапку в качестве тестового домена.включен dbconfig.php файл не работает при использовании прямого пути вместо относительного пути

http://mywebsite/testing-folder 

мой DBCONFIG расположен по адресу:

http://mywebsite/testing-folder/lib/dbconfig.php 

, если я включаю файл: http://mywebsite/testing-folder/userarea/profile

с относительным путем оно прекрасно. Если я включу его прямым путем, он выдает ошибку:

FATAL ERROR: Call to a member function prepare() on a non-object in... 

$root = 'http://mywebsite/testing-folder/'; 
include '../../lib/dbconfig.php'; // This works 
include $root.'lib/dbconfig.php'; // This does not 

любая подсказка о том, почему?

+0

Прочтите это, и вы найдете ответ: http://www.php.net/manual/en/function.include.php#52342 – vee

ответ

1

Вы пытаетесь включить файл через HTTP. Это неправильно, вы должны включить файлы с передачей пути локальной файловой системы к include или require.

Ваш корень должен вероятно выглядеть так:

$root = '/var/www/mywebsite/testing-folder/'; 
+0

Спасибо .. Это сделал трюк !!! –

2

Вместо того, чтобы использовать URL, вы должны использовать путь файловой системы. Таким образом, вместо

$root = 'http://mywebsite/testing-folder/'; 

что-то вроде

$root = '/var/www/whatever/'; 

следует использовать. Когда вы включаете php через http, ваш веб-сервер уже будет интерпретировать код и возвращать все, что вы там выводите (например, echo "hello world";). Если ваши файлы просто содержат конфигурацию, выход, вероятно, будет пустым.

+0

спасибо !! Пришлось принять тот, который пришел первым. –

+0

Сначала этот ответ был дан! Это говорит 35 минут назад, тогда как принятый ответ говорит 38 минут назад. – Jamesking56

Смежные вопросы