• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

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

deling2

Мой дом здесь!
Регистрация
27 Янв 2008
Сообщения
327
Реакции
307
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 не обрабатывает данные код?
 
PHP:
If (isset ( $_GET["utm_sourse"] ))
Простите, в /12-prikoli.html?tid=255 я не вижу передачи параметра utm_sourse => он пустой => if получает false => он не выполняется.

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

Замените содержимое файлы на <?php echo "Тест"; ?> - выведется Test
 
Последнее редактирование:
Но в таком случае при заходе по урлу сайт.ру/12-prikoli.html?utm_sourse=255 , {include file='engine/modules/f.php'} в полной новости должен был вывести 255,но он почему-то и это не выводит.
Видимо я тогда не очень понимаю логику выполнения инклудов в DLE.
 
А я не понимаю, как Вы код пишете :)

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
 
Простите, а откуда должен взяться $utm_sourse? В коде заданы только $tid и $_GET["utm_sourse"]
При register globals=on переменная $utm_sourse уже будет проинициализирована(это и есть сайт.ру/12-prikoli.html?utm_sourse=255)
 
А я не понимаю, как Вы код пишете :)
Если честно, с сигарой в зубах и Для просмотра ссылки Войди или Зарегистрируйся в закрепленной вкладке.

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

При заходе на страницу Для просмотра ссылки Войди или Зарегистрируйся пусто.

Как костыль пока сделал через 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'} не работает никак не могу понять.
 
Vishez, register globals вымерла лет 10 назад... Чего вспоминаете то? Я вон тоже синтаксис PHP 3 могу вспомнить - мы говорим про боевой сервер, на котором register globals уже лет 5 как просто непростительна...

deling2
Для просмотра ссылки Войди или Зарегистрируйся
Что касается ссылки /5-prikol.html?utm_sourse=23424 - чёт сразу не сообразил... Там же уже отработал ЧПУ (.htaccess)... Так что здесь оно не прокатит.
К примеру, так передать можно: Для просмотра ссылки Войди или Зарегистрируйся
А чтобы передать в новость - нужно править ЧПУ, либо отключать ЧПУ
 
Назад
Сверху