include(). Как правильно сделать?

mychatik

Support
Команда форума
Регистрация
26.05.15
Сообщения
528
Реакции
461
Баллы
63
Возникла вот такая проблема.

Делаю мод вывода ника диджея, ведущего эфир. Настроил, всё работает идеально.
Но, так как вывод ника у меня предусмотрен в 3х местах, то теперь я хочу ещё сделать отдельный файл dj_vars.php , в котором достаточно будет один раз сменить инфу о диджее (добавить/удалить), а не менять 3 раза в разных файлах.
Решение проблемы - вроде очень простое - функция include(). Но тут же, сразу возникли проблемы. Как её правильно применять?
Порывшись в Гугле, везде нашёл практически один и тот же пример подключения:
PHP:
include "$i.txt";
или
include 'vars.php';
Но в таком варианте результата вообще - 0.
В самом чате нахожу несколько вариантов подключения:
PHP:
include ('inc_common.php');
include ($engine_path."users_get_list.php");
include ($file_path."inc_form_message.php");
В моём случае, для одного файла, прокатил только вариант:
PHP:
<?php
include ($file_path."/Globus_FM/dj_vars.php");
echo $djnick;
?>
Всё корректно заработало.
Но этот же вариант для другого подключения НЕ ПАШЕТ! :(((
Мне этот файл нужно подключить ещё и в designes/design/top.php. И, блин, никак...
Пробовал в include указывать и локальный и полный путь. Писал во всех 4х вариантах... Никаких изменений.
Хотя, локальный путь правильный. По этому же пути попробовал открыть картинку - всё есть.
А полный путь, как пишут, в include как раз может быть и заблокирован на сервере.

Короче, вопрос: какой вариант синтаксиса выражения правильно применять и в каком случае?
Когда применяется $engine_path, а когда $file_path?
И каким образом, блин, в конце концов, приинклюдить мне диджеев в дизайновский топ? :)))
 
Последнее редактирование:

Майор

Premium
Premium
Регистрация
04.09.14
Сообщения
2.946
Реакции
2.021
Баллы
113

mychatik

Support
Команда форума
Регистрация
26.05.15
Сообщения
528
Реакции
461
Баллы
63
попробуй по принципу
PHP:
include("../../файл.php");
каждый ../ означает папку на уровень вверх
Я пробовал и с точками тоже... Результат - 0. Да и с путями вроде как порядок.
В /top.php у меня сейчас чётко работает вывод диджеев. Только этот скрипт прописан в самом файле, а не подключается, как я хочу...
И по этому пути - /Globus_FM/img/ник_диджея.gif - ники выводятся без проблем. Значит, по идее, и инклюд по пути /Globus_FM/dj_vars.php должен работать...
Блин, мозгокрутку себе задал...
 

Rain

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
369
Реакции
321
Баллы
63
Возраст
30
В какой файл подключаешь? Если в нем есть подключение inc_common.php - то свой файл можешь подключать как
PHP:
include ($file_path."/Globus_FM/dj_vars.php");
 

mychatik

Support
Команда форума
Регистрация
26.05.15
Сообщения
528
Реакции
461
Баллы
63
В какой файл подключаешь? Если в нем есть подключение inc_common.php...
У меня не получается подключение в designes/design/top.php. :(
В нём нет никаких других инклюдов. В том числе и inc_common.php.
В подобный файл (не чатовский, а созданный дополнительно), в котором нет тоже inc_common.php - подключить получилось вот так:
PHP:
 <?php
    include ($file_path."/Globus_FM/dj_vars.php");
    echo $djnick;
    ?>
Вот эта, работающая, страница с таким инклюдом: Диджеи чата «Глобус»
А таким же способом, уже в /top.php, подключить не удаётся...
 
Последнее редактирование:

stream

Support
Команда форума
Регистрация
09.09.14
Сообщения
1.014
Реакции
674
Баллы
113
У меня не получается подключение в designes/design/top.php. :(
В нём нет никаких других инклюдов. В том числе и inc_common.php.
В подобный файл (не чатовский, а созданный дополнительно), в котором нет тоже inc_common.php - подключить получилось вот так:
PHP:
 <?php
    include ($file_path."/Globus_FM/dj_vars.php");
    echo $djnick;
    ?>
Вот этот, работающий, файл с таким инклюдом: Диджеи чата «Глобус»
А таким же способом уже в /top.php подключить не подключается...
Глянь в inc_common.php там есть такое:
Код:
// the path, where all data is stored  -- i.e. messages, user-boards etc. and also config file
// It is recommended to put this directory outside of your web-site access-path
$data_path = "/var/www/твой_аккаунт/data/data/";
Потом глянь в data/voc.conf там есть такое:
Код:
$chat_url = "http://адрес_твоего_чата/";
$file_path = "/var/www/твой_аккаунт/data/www/адрес_твоего_чата.ru/";
...Если в инклюде $data_path - файл инклюдится из папки data, если в инклюде $file_path - файл инклюдится из корневой папки чата.
...Чтобы каждый раз не писать кучу путей, их в файле конфига определили в переменные, а файл конфига в inc_common.php , если ты его не заинклюдишь, нет смысла использовать переменные типа $file_path.
..В моде Паши статистики не во всех файлах есть инклюд этого файла. К примеру, АС он ручками прописал чистым HTML.
..Как-то так, надеюсь, суть ты понял)
 

Rain

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
369
Реакции
321
Баллы
63
Возраст
30
Смотри.
Если без inc_common то можно так
Код:
include ("../../../Globus_FM/dj_vars.php");
в котором нет тоже inc_common.php - подключить получилось вот так:
Быть такого не может. $file_path определяется в inc_common.php
Если ошибок инклюда нет - значит либо у тебя выключены ошибки, либо с путями все ок и скрипт отказывается работа без чего либо еще.
Скинь код мне в ЛС, попробуем разобраться.

P.S. Кстати, тот твой вариант еще может работать потому что файл t_dj.php находится в корне. Если inc_common к нему не подключен то $file_path будет пустой, а значит
Код:
include ($file_path."Globus_FM/dj_vars.php");
сработает потому что будет выглядеть так:
Код:
include ("Globus_FM/dj_vars.php");
 
Сверху Снизу