[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: с denwer на хостинг не работает подключение файлов
DarkGuy
Добрый день!
Перенес проект с denwer на хостинг.
перестали работать подключение файлов

include_once ('/lib/languages.php');   

выдает ошибку
Warning: include_once(/lib/languages.php) [function.include-once]: failed to open stream: No such file or directory in /home/www/z264906/htdocs/system/global.php on line 5
хотя на denwer все работает.
структура следующая

index.php
include_once ('system/global.php');


global.php
include_once ('/lib/languages.php');


файлы существуют

в чем может быть причина?
DarkGuy
Если убрать / т.е.

include_once ('lib/languages.php'); 


Warning: include_once(/../global.php) [function.include-once]: failed to open stream: No such file or directory in /home/www/z264906/htdocs/system/lib/languages.php on line 2

Warning: include_once() [function.include]: Failed opening '/../global.php' for inclusion (include_path='.:/opt/php-5.2/lib/php') in /home/www/z264906/htdocs/system/lib/languages.php on line 2
killer8080
Да оно и на денвере не могло работать biggrin.gif



Спустя 1 минута, 36 секунд killer8080 написал(а):
Используй $_SERVER['DOCUMENT_ROOT'], а лучше объявляй константы с путями.
DarkGuy
Цитата (killer8080 @ 20.04.2013 - 17:53)
Да оно и на денвере не могло работать :D



Спустя 1 минута, 36 секунд killer8080 написал(а):
Используй $_SERVER['DOCUMENT_ROOT'], а лучше объявляй константы с путями.

работает, могу скинуть скрины.
сделал
include_once ($_SERVER['DOCUMENT_ROOT'].'/lib/languages.php'); 

все равно
Warning: include_once(/home/www/z264906/htdocs/lib/languages.php) [function.include-once]: failed to open stream: No such file or directory in /home/www/z264906/htdocs/system/global.php on line 5

Warning: include_once() [function.include]: Failed opening '/home/www/z264906/htdocs/lib/languages.php' for inclusion (include_path='.:/opt/php-5.2/lib/php') in /home/www/z264906/htdocs/system/global.php on line 5

DarkGuy
Цитата (DarkGuy @ 20.04.2013 - 18:57)
Цитата (killer8080 @ 20.04.2013 - 17:53)
Да оно и на денвере не могло работать :D 



Спустя 1 минута, 36 секунд killer8080 написал(а):
Используй $_SERVER['DOCUMENT_ROOT'], а лучше объявляй константы с путями.

работает, могу скинуть скрины.
сделал
include_once ($_SERVER['DOCUMENT_ROOT'].'/lib/languages.php'); 

все равно
Warning: include_once(/home/www/z264906/htdocs/lib/languages.php) [function.include-once]: failed to open stream: No such file or directory in /home/www/z264906/htdocs/system/global.php on line 5

Warning: include_once() [function.include]: Failed opening '/home/www/z264906/htdocs/lib/languages.php' for inclusion (include_path='.:/opt/php-5.2/lib/php') in /home/www/z264906/htdocs/system/global.php on line 5

сори
сделал так
(забыл про паку system)
include_once ($_SERVER['DOCUMENT_ROOT'].'/system/lib/languages.php');
все равно


Warning: include_once(/../global.php) [function.include-once]: failed to open stream: No such file or directory in /home/www/z264906/htdocs/system/lib/languages.php on line 2

Warning: include_once() [function.include]: Failed opening '/../global.php' for inclusion (include_path='.:/opt/php-5.2/lib/php') in /home/www/z264906/htdocs/system/lib/languages.php on line 2
rooor
Цитата
No such file or directory

проверяй пути, где-то что-то забыл
killer8080
Цитата (DarkGuy @ 20.04.2013 - 22:00)
include_once ($_SERVER['DOCUMENT_ROOT'].'/system/lib/languages.php');
все равно


Warning: include_once(/../global.php) [function.include-once]: failed

это же другая ошибка, там global.php, а не languages.php подключался
DarkGuy
Цитата (killer8080 @ 20.04.2013 - 19:43)
Цитата (DarkGuy @ 20.04.2013 - 22:00)
include_once ($_SERVER['DOCUMENT_ROOT'].'/system/lib/languages.php');
все равно


Warning: include_once(/../global.php) [function.include-once]: failed

это же другая ошибка, там global.php, а не languages.php подключался

Спасибо, нашел ошибку!
Еще один вопрос
include_once ('../global.php');

подключить файл находящийся на один уровень ниже, так?
killer8080
Цитата (DarkGuy @ 20.04.2013 - 22:48)
include_once ('/../global.php');
подключить файл находящийся на один уровень ниже, так?

нет, так ../global.php
но не советую так делать, так текущая директория, и директория в которой лежит этот скрипт могут отличатся. Вот например в твоем коде есть файл system/global.php, наверняка он сам инклюдится в корневом index.php. Значит текущей директорией будет htdocs, тогда относительный путь ../ будет указывать на уровень выше корня веб директории. Поэтому лучше всегда использовать полные пути. В том же index.php (если у тебя приложение с общей точкой входа) объявляй константу с путем к корню сайта, именно сайта, а не DOCUMENT_ROOT сервера, так как сайт может размещаться во вложенных директориях.
define('ROOT_DIR', dirname(str_replace('\\', '/', __FILE__)));

и везде в коде используй эту константу, вместо относительных путей, тогда забудешь о таких проблемах :)
DarkGuy
Цитата (killer8080 @ 20.04.2013 - 20:08)
Цитата (DarkGuy @ 20.04.2013 - 22:48)
include_once ('/../global.php');
подключить файл находящийся на один уровень ниже, так?

нет, так ../global.php
но не советую так делать, так текущая директория, и директория в которой лежит этот скрипт могут отличатся. Вот например в твоем коде есть файл system/global.php, наверняка он сам инклюдится в корневом index.php. Значит текущей директорией будет htdocs, тогда относительный путь ../ будет указывать на уровень выше корня веб директории. Поэтому лучше всегда использовать полные пути. В том же index.php (если у тебя приложение с общей точкой входа) объявляй константу с путем к корню сайта, именно сайта, а не DOCUMENT_ROOT сервера, так как сайт может размещаться во вложенных директориях.
define('ROOT_DIR', dirname(str_replace('\\', '/', __FILE__)));

и везде в коде используй эту константу, вместо относительных путей, тогда забудешь о таких проблемах :)

спасибо! Так и сделал. все работает
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.