Помощь Почему-то не работает include

Тема в разделе "DLE", создана пользователем deling2, 16 май 2014.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. deling2

    deling2

    Регистр.:
    27 янв 2008
    Сообщения:
    326
    Симпатии:
    192
    DLE 10.2
    Задача простая. Пробросить utm метки в ссылки.
    Для этого создаю файл, например f.php c содержимым:
    Код:
    <?php    If (isset ( $_GET["utm_sourse"] )) { $tid=$_GET["utm_sourse"]; echo $utm_sourse ; }?>
    В полной новости вставляю:
    {include file='engine/modules/f.php'}

    Но при заходе на страницу полной новости сайт.ру/12-prikoli.html?utm_sourse=255 или айт.ру/12-prikoli.html?tid=255 в месте, где вставлен инклюд ничего не выводится.

    В чем может причина того, что DLE не обрабатывает данные код?
     
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.040
    PHP:
    If (isset ( $_GET["utm_sourse"] ))
    Простите, в /12-prikoli.html?tid=255 я не вижу передачи параметра utm_sourse => он пустой => if получает false => он не выполняется.

    Т.е. файл был подключён в ДЛЕ, но в этом файле просто нечего выводить...

    Замените содержимое файлы на <?php echo "Тест"; ?> - выведется Test
     
    Последнее редактирование: 16 май 2014
  3. deling2

    deling2

    Регистр.:
    27 янв 2008
    Сообщения:
    326
    Симпатии:
    192
    Но в таком случае при заходе по урлу сайт.ру/12-prikoli.html?utm_sourse=255 , {include file='engine/modules/f.php'} в полной новости должен был вывести 255,но он почему-то и это не выводит.
    Видимо я тогда не очень понимаю логику выполнения инклудов в DLE.
     
  4. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.040
    А я не понимаю, как Вы код пишете :)

    PHP:
    $tid=$_GET["utm_sourse"]; 
    echo 
    $utm_sourse ;
    Простите, а откуда должен взяться $utm_sourse? В коде заданы только $tid и $_GET["utm_sourse"]
    PHP:
    <?php   
    If (isset ( $_GET["utm_sourse"] )) {
       
    $tid=$_GET["utm_sourse"]; 
       echo 
    $tid
    }
    ?>
    Это выведет 255
     
  5. Vishez

    Vishez

    Регистр.:
    19 авг 2013
    Сообщения:
    169
    Симпатии:
    81
    При register globals=on переменная $utm_sourse уже будет проинициализирована(это и есть сайт.ру/12-prikoli.html?utm_sourse=255)
     
  6. deling2

    deling2

    Регистр.:
    27 янв 2008
    Сообщения:
    326
    Симпатии:
    192
    Если честно, с сигарой в зубах и справочником php в закрепленной вкладке.

    Хоть убейте, но код не работает.
    PHP:
    <?php  
    If (isset ( $_GET["utm_sourse"] )) {
       
    $tid=$_GET["utm_sourse"];
       echo 
    $tid
    }
    ?>
    В фулстори стоит {include file='engine/modules/test.php'}
    В test.php код, который выше.

    При заходе на страницу http://сайт/5-prikol.html?utm_sourse=23424 пусто.

    Как костыль пока сделал через engine.php
    PHP:
        case "test" :
    include 
    ENGINE_DIR '/modules/test.php';
    break;
    PHP:
    <?php
    if( ! defined'DATALIFEENGINE' ) ) {
    die( 
    "Hacking attempt!" );
    }

    $tpl->result['content'] = dle_cache"test"$config['skin'], true );

    if( ! 
    $tpl->result['content'] ) {
    $tpl->load_template'test.tpl' );

    $utm_sourse=$_GET["utm_sourse"];
    $tpl->set'{utm}'$utm_sourse );

    $tpl->compile'content' );
    $tpl->clear();

    create_cache"test"$tpl->result['content'], $config['skin'], true );
    }

    А а в шаблоне уже {utm}.

    Переходя по урлу сайт.ру?do=test&utm_sourse=255 теперь выводится 255.

    Почему стандартный метод инклуда {include file='engine/modules/test.php'} не работает никак не могу понять.
     
    Горбушка нравится это.
  7. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.040
    Vishez, register globals вымерла лет 10 назад... Чего вспоминаете то? Я вон тоже синтаксис PHP 3 могу вспомнить - мы говорим про боевой сервер, на котором register globals уже лет 5 как просто непростительна...

    deling2
    http://dle.demo.gorbushka.name/?utm_sourse=23424
    Что касается ссылки /5-prikol.html?utm_sourse=23424 - чёт сразу не сообразил... Там же уже отработал ЧПУ (.htaccess)... Так что здесь оно не прокатит.
    К примеру, так передать можно: http://dle.demo.gorbushka.name/main/&utm_sourse=23424
    А чтобы передать в новость - нужно править ЧПУ, либо отключать ЧПУ
     
    deling2 нравится это.