Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > include Файлы и CMS


Автор: Burka 22.9.2010, 00:07
Мой страница расположена в папке site.ru/forum/1.php. В ней используются функции форума phpbb3, включаю файлы через requare.
Админ сайта, через CMS (joomla) отображает эту страницу по адресу site.ru/1.php. При этом не  включаются файлы, какой бы путь не указывал, файлы не находит. Если обращаться напрямую  к странице site.ru/forum/1.php то все работает . 
Включаются файлы которые лежат только в той же папке, но это не подходит.

Можно как нибудь решить эту проблему?

Автор: bars80080 22.9.2010, 10:18
Цитата(Burka @  22.9.2010,  00:07 Найти цитируемый пост)
При этом не  включаются файлы, какой бы путь не указывал, файлы не находит.

можно поглядеть, как вы строите адрес, и как выглядит итоговый адрес? echo $path;

Автор: DeamonShan 22.9.2010, 10:52
скорее всего пути относительные...

Автор: Burka 22.9.2010, 11:15
Пробовал и прямой ссылкой пути указывать, не работает. Включает только из той же директории файлы. Пусть формируется так же как в форуме phpbb3, пример скинуть смогу только вечером.

Автор: xrustic 22.9.2010, 12:35
возможно надо указывать глобальный(полный) путь

Код

$_SERVER['DOCUMENT_ROOT'].'/forum/1.php'




Автор: ksnk 22.9.2010, 12:56
Код

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

вот так, обычно, инлюдится общая библиотека в phpbb.
PHPBB_ROOT_PATH задефайнен?

Автор: Burka 22.9.2010, 18:20
Вот код, это начало файла ucp.php я взял оттуда код проверки авторизации на форуме.
Если заходить на страницу напрямую этот код работает.
Код

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require($phpbb_root_path . 'includes/functions_user.' . $phpEx);
require($phpbb_root_path . 'includes/functions_module.' . $phpEx);


попробовал сделать так:
Код

require($_SERVER['DOCUMENT_ROOT'].'/forum/common.'. $phpEx);
require($_SERVER['DOCUMENT_ROOT'].'/forum/includes/functions_user.'.$phpEx);
require($_SERVER['DOCUMENT_ROOT'].'/forum/includes/functions_module.'.$phpEx);

Пишет такую ошибку:
Цитата

The config.php file could not be found.

Click here to install phpBB

Автор: bars80080 22.9.2010, 18:54
ну, в ошибке написано, что не найден config.php, а в вашем примере его подключения не происходит

Автор: ksnk 22.9.2010, 18:56
Код

define('PHPBB_ROOT_PATH',$_SERVER['DOCUMENT_ROOT'].'/forum/');



Цитата(Burka @  22.9.2010,  18:20 Найти цитируемый пост)
Пишет такую ошибку:

The config.php file could not be found.

Click here to install phpBB

Если поискать такую ошибку в коде - будет видно, что без того дефайна ничего не заработает.

Автор: Burka 22.9.2010, 19:41
Сделал так:
Код

$phpbb_root_path = define('PHPBB_ROOT_PATH',$_SERVER['DOCUMENT_ROOT'].'/forum/');
$phpEx = substr(strrchr(__FILE__, '.'), 1);
echo $phpbb_root_path . 'common.' . $phpEx;

Выводит:
Цитата

1common.php


Добавлено @ 19:44
Цитата(bars80080 @  22.9.2010,  18:54 Найти цитируемый пост)
ну, в ошибке написано, что не найден config.php, а в вашем примере его подключения не происходит

Как его надо подключать и зачем? Почему напрямую работает без его подключения?

Автор: ksnk 22.9.2010, 19:48
Цитата(Burka @  22.9.2010,  19:41 Найти цитируемый пост)
$phpbb_root_path = define('PHPBB_ROOT_PATH',$_SERVER['DOCUMENT_ROOT'].'/forum/');

Можно еще какие-нибудь книжки по php почитать... Возможно. поможет...

Автор: Burka 22.9.2010, 20:01
Может обойти как нибудь можно? например я пробовал добавить в каталоге с файлом файл в котором будут включатся эти библиотеки, но не помогло.

Автор: ksnk 22.9.2010, 22:31
Код

define('IN_PHPBB', true);
define('PHPBB_ROOT_PATH',$_SERVER['DOCUMENT_ROOT'].'/forum/'); // вот это добавить!!!!!!!!!!!!!!!!!
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require($phpbb_root_path . 'includes/functions_user.' . $phpEx);
require($phpbb_root_path . 'includes/functions_module.' . $phpEx);

Автор: Burka 23.9.2010, 18:31
Не получается все равно, выводит такой путь, возможно форум сам в какой нибудь папке лежит
Цитата

/home/h/honstarru/public_html/forum/common.php


Добавлено через 9 минут и 22 секунды
может define('IN_PHPBB', true); на это может как нибудь повлиять? я уже не знаю чего придумать

Автор: Burka 23.9.2010, 18:52
Код

define('IN_PHPBB', true);
define('PHPBB_ROOT_PATH',$_SERVER['DOCUMENT_ROOT'].'/forum/');
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
echo $phpbb_root_path . 'common.' . $phpEx."<br><br>";
require($phpbb_root_path . 'common.' . $phpEx);
require($phpbb_root_path . 'includes/functions_user.' . $phpEx);
require($phpbb_root_path . 'includes/functions_module.' . $phpEx);

так отображается только если напрямую к странице обращатся, может в настройках ЦМС есть какие параметры?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)