B
BaltazoR
Прохожие
- Автор темы
- #1
По умолчанию скрипт игнорирует пхп код в новостях, мож кто подскажет где нужно подправить, что бы это стало возможным ?
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Jerry прав, этот фокус работает только в шаблоне - а мне нужно в новостиSOCRAT написал(а):Откройте файл index.php найдите строчку:
и замените ее наPHP:echo $tpl->result['main'];
PHP:eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');
BaltazoR написал(а):По умолчанию скрипт игнорирует пхп код в новостях, мож кто подскажет где нужно подправить, что бы это стало возможным ?
в 5 дле , чуть чуть изменён этот способ , см. на офф форуме если ещё раз найду то скинуBaltazoR написал(а):По умолчанию скрипт игнорирует пхп код в новостях, мож кто подскажет где нужно подправить, что бы это стало возможным ?
Думаю такое решение будет одно из наиболее верных:
в index.php заменить
[B]echo $tpl->result['main'];[/B] на [B]eval (' ?>'.$tpl->result['main'].'<?php ');[/B]
[I]Пояснение: Благодаря этому будут выполняться php скрипты[/I]
и перед этим добавить :
[B]$tpl->set('<?', '<?');
$tpl->set('?>', '?>');
if($md5_code!=0){ $tpl->set('[PHPCODE]'.$md5_code, '<?php ');
$tpl->set($md5_code.'[/PHPCODE]', ' ?>'); }[/B]
[I]Пояснение: Первая и вторая строчка позволяет удалить попавшие случайным/специальным образом теги php
Третья и четвёртая - меняет BBCode скриптинга только если были загружены статические страници[/I]
во второй строчке index.php добавляем [B]$md5_code=0;[/B]
[I]Пояснение: Теперь невозможно передать это значение извне[/I]
для защиты остальных страниц в engine\modules\static.php
добавляем после строки $tpl->load_template('static.tpl'); это 41 строка, следующее:
[B]$md5_code=md5(rand(1000, mktime()));
$tpl->set('[PHPCODE]', '[PHPCODE]'.$md5_code);
$tpl->set('[/PHPCODE]', $md5_code.'[/PHPCODE]');[/B]
[I]Пояснение: Благодаря вставке неизвестной юзеру переменной невозможно будет посредством добавления в коменты(к примеру) запуск php[/I]
Теперь там где нужна вставка кода просто делать так(пример инклуда):
вместо <? include("file.php"); ?> [PHPCODE]include("file.php");[/PHPCODE]
Это конечный результат по файлу index.php для вставки инклуда php для 5.1 точьно пойдет на офф. я не могу зайти. Но всеравно спасибо.Alx^ написал(а):в 5 дле , чуть чуть изменён этот способ , см. на офф форуме если ещё раз найду то скину
Добавлено через 1 минуту
Короче вот статья, делайте только всё точно как написано!
Код:Думаю такое решение будет одно из наиболее верных: в index.php заменить [B]echo $tpl->result['main'];[/B] на [B]eval (' ?>'.$tpl->result['main'].'<?php ');[/B] [I]Пояснение: Благодаря этому будут выполняться php скрипты[/I] и перед этим добавить : [B]$tpl->set('<?', '<?'); $tpl->set('?>', '?>'); if($md5_code!=0){ $tpl->set('[PHPCODE]'.$md5_code, '<?php '); $tpl->set($md5_code.'[/PHPCODE]', ' ?>'); }[/B] [I]Пояснение: Первая и вторая строчка позволяет удалить попавшие случайным/специальным образом теги php Третья и четвёртая - меняет BBCode скриптинга только если были загружены статические страници[/I] во второй строчке index.php добавляем [B]$md5_code=0;[/B] [I]Пояснение: Теперь невозможно передать это значение извне[/I] для защиты остальных страниц в engine\modules\static.php добавляем после строки $tpl->load_template('static.tpl'); это 41 строка, следующее: [B]$md5_code=md5(rand(1000, mktime())); $tpl->set('[PHPCODE]', '[PHPCODE]'.$md5_code); $tpl->set('[/PHPCODE]', $md5_code.'[/PHPCODE]');[/B] [I]Пояснение: Благодаря вставке неизвестной юзеру переменной невозможно будет посредством добавления в коменты(к примеру) запуск php[/I] Теперь там где нужна вставка кода просто делать так(пример инклуда): вместо <? include("file.php"); ?> [PHPCODE]include("file.php");[/PHPCODE]
Для того чтобы сказать спасибо есть спец кнопка , ну я для етого и скопировал этот код ...pilot233 написал(а):Это конечный результат по файлу index.php для вставки инклуда php для 5.1 точьно пойдет на офф. я не могу зайти. Но всеравно спасибо.