Помощь [help]php скрипты в DLE

Тема в разделе "DLE", создана пользователем Smile, 1 окт 2008.

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

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

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

    Smile

    Регистр.:
    12 ноя 2006
    Сообщения:
    157
    Симпатии:
    11
    сообствено вопрос в том, что и где надо поправить чтоб php скрипты работали в DLE 7.2. HELP PLZ :bc:

    раньше делал так, но в 7.2 не работает (

    Код:
    Открываем файл index.php и ищем строчку 
    echo $tpl->result['main'];
    
    и заменяем её на это:
    eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');
    
     
  2. sellerr

    sellerr Постоялец

    Регистр.:
    8 май 2007
    Сообщения:
    103
    Симпатии:
    7
    етим кодом вы делаете свой дле движок уязвимым... я б нерисковал
     
  3. glam

    glam

    Регистр.:
    12 апр 2007
    Сообщения:
    734
    Симпатии:
    217
    sellerr не рискуй. ;)
    Smile долго думал над названием твоей темы и первого поста. Тебе надо сделать выполнение php кода в шаблонах. И почему не работает тот вариант который ты запостил? он говорит "я не хочу работать" или что он делает?
     
  4. basct

    basct Постоялец

    Регистр.:
    13 июн 2008
    Сообщения:
    101
    Симпатии:
    46
    Smile, попробуйте вот это:
    в index.php, находим:
    PHP:
    echo $tpl->result['main'];
    и заменяем на:
    PHP:
    function incphp($str)
    {
    $a = explode('<?', $str);
    echo $a[0];
    for ($i=1; $i<sizeof($a); $i++)
    {
    $b = explode('?>', $a[$i]);
    eval($b[0]);
    if (sizeof($b)>1) echo $b[1];
    }
    }
    incphp($tpl->result['main']);
     
  5. AgpeHaJIuH

    AgpeHaJIuH Постоялец

    Регистр.:
    7 июл 2008
    Сообщения:
    67
    Симпатии:
    19
    Все работает, вот только это уязвимость
    А для чего собственно пхп в шаблоне? Если для подключения биржи ссылок и т.п. посмотри у них на форуме, там наверняка есть коды для различных cms.

    Вот такой вариант еще возможен:

    В файле /index.php находишь это:
    $tpl->compile('main');
    и перед ним:

    1)прописывем свой php код
    2)сохраняем результат (допустим ссылки с биржи) в переменую или массив (например $my_output)
    3)подключаем результат в шаблон $tpl->set('{my_output}', $my_output);
    4)вставляем в шаблоне в нужном месте {my_output}

    Пример:
    в index.php перед $tpl->compile('main':(
    $test = "HelloWorld";
    $tpl->set('{my_output}', $test);

    В шаблоне:
    {my_output}
    Этот пример выведет содержимое переменной test: "Hello world"
     
Статус темы:
Закрыта.