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

mychatik

Premium
Premium
26.05.15
429
322
mychatik.ru
#1
Возникла вот такая проблема.

Делаю мод вывода ника диджея, ведущего эфир. Настроил, всё работает идеально.
Но, так как вывод ника у меня предусмотрен в 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?
И каким образом, блин, в конце концов, приинклюдить мне диджеев в дизайновский топ? :)))
 
Последнее редактирование:

Майор

Администратор
Команда форума
04.09.14
2.673
1.802
39
dnrschool-145.ru
#2
Мне этот файл нужно подключить ещё и в designes/design/top.php. И, блин, никак...
попробуй по принципу
PHP:
include("../../файл.php");
каждый ../ означает папку на уровень вверх
 

mychatik

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

Rain

Администратор
Команда форума
04.09.14
334
281
28
#4
В какой файл подключаешь? Если в нем есть подключение inc_common.php - то свой файл можешь подключать как
PHP:
include ($file_path."/Globus_FM/dj_vars.php");
 

mychatik

Premium
Premium
26.05.15
429
322
mychatik.ru
#5
В какой файл подключаешь? Если в нем есть подключение 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

Модератор
Клиент
09.09.14
925
577
#6
У меня не получается подключение в 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
$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
334
281
28
#7
Смотри.
Если без 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");