ВОПРОС Безопасность Dle или как лучше запихать PHP код

X-Ramzes

Автор темы
Сообщения
4
Репутация
0
Баллы
1
227

Добрый вечер. Сижу экспериментирую на компе с php кодом в файле Fullstory.tpl. Вот пример кода:

Код:
<?php
$con_str=mysql_connect('localhost', 'root', '', 'INFO');
  if(mysql_connect('localhost','root')){
 
 }
  mysql_select_db('db1',$con_str);

и тд и тп

?>

Далее КОД (полной новости) и там вывод нужной информации из базы в нужном месте посредством <?php echo $frow1 ?>, которая получает из верхнего кода.

Вкратце вопрос.

1. Безопасносли использовать такой метод вывода информации из БД в полную новость на сайте за счет php скрипта которая пряма в fullstroy встроена? (при просмотре кода страницы в браузере , php код не показывает (то есть не спалят данные к БД по идее ) ??? это первый вопрос.

2. А второй вопрос как безопаснее это сделать? Пробовал вписать в Fullstory.tpl 'это {include file="engine/modules/skript.php"} (там находиться сам скрипт) но нечего не получилось. Не выводит в полной новости нечего.

P.S Php скрипт соединяется с тремя базами и выводит нужные от туда мне информации в разные места. И php скрипт не под Dle сделан, то есть он отдельно. За счет <?php echo $frow1 ?> вывожу на странице полной новости.
Спасибо. Буду благодарен за любую подсказку.
 

X-Ramzes

Автор темы
Сообщения
4
Репутация
0
Баллы
1
Проблему решил с безопасным выводом, в скрипте вписал
Код:
<?php
@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'display_errors', true );
@ini_set ( 'html_errors', false );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
 
define( 'DATALIFEENGINE', true );
define( 'ROOT_DIR', substr( dirname(  __FILE__ ), 0, -12 ) );
define( 'ENGINE_DIR', ROOT_DIR . '/engine' );
 
include ENGINE_DIR . '/data/config.php';
require_once ENGINE_DIR . '/classes/mysql.php';
require_once ENGINE_DIR . '/data/dbconfig.php';
require_once ENGINE_DIR . '/modules/functions.php';
Далее подключил скрипт в index.php
вот так:
Код:
require_once (ENGINE_DIR . '/modules/skript.php');
а от туда вывожу данные на странице

за счет <?php echo $skript1 ?> и другими методами

Но теперь на рисовалась другая проблема: Как я писал выше, я с определенной строчки выводил данные и сам PHP код находился прямо в fullstory.tpl .

В самом коде вписывалось данные с доп поля [xfvalue_desc], а в доп поле была цифра нужной строчки в БД.
Вот такая: $data = $db->query("SELECT * FROM SKRIPT.SKRIPT2 WHERE n_id=[xfvalue_desc]");
Где [xfvalue_desc] превращалась в цифру и получалось так:
$data = $db->query("SELECT * FROM SKRIPT.SKRIPT2 WHERE n_id=666");

Но теперь так как код больше не на самой странице, а находиться в папке MODULES

[xfvalue_desc] - доп поле не работает ( не выводит цифру для запроса в бд)

Как решить такую проблему?????
 
Последнее редактирование:

X-Ramzes

Автор темы
Сообщения
4
Репутация
0
Баллы
1
C выводом доп поля в скрипте разобрался. Да и код изменил, подключился через Dle API вот так.

Код:
include ('engine/api/api.class.php'); // подключаем api
$table = 'dle_post';  // название таблицы
$fields  = 'xfields'; // нужные поля, * - все поля
$where = 'approve=1'; // условия выборки
$multirow = 1; // забирать ли один ряд или несколько
$start = 0; // начальное значение выборки
$limit = 0; // количество записей для выборки, 0 - выбрать все
$xfield = 'desc'; ///ИМЯ ДОП ПОЛЯ ДЛЯ ВЫВОДА
$time = '14000'; //время жизни кеша

$xfields = $dle_api->load_from_cache (xfields, $xfields); //берем наш кеш, если есть конечно ))

if( !$userblock ) { //проверяем взяли ли мы кеш и если не взяли, то делаем запрос

    $xfields = $dle_api->load_table ($table,$fields,$where,$multirow,$start,$limit); //делаем запрос к бд
    }

$dle_api->save_to_cache ( xfields, $xfields); //сохраняем в кеш

foreach($xfields as $value) //выводим на экран массив
  {
    if($value[xfields]){ //проверяем есть ли элемент в массиве
  
        $row = xfieldsdataload($value[xfields]);
      
        }
  } 

$data = $db->query("SELECT * FROM и тд и тп
а выводим доп поля в php за счет $row[$xfield]

(код не мой нашел на просторах интернета)

Но теперь Вышла другая проблема.

Если прописывать в index.php это
require_once (ENGINE_DIR . '/modules/skript.php');
то скрипт на всех страницах сайта начинает работать и делать лишние запросы. а как сделать чтоб только в fullstory работал.

Через
{include file="engine/modules/skript.php"} не работает.

P.S Пишу все может патом кому нибудь понадобиться. Да и самому нужна помощь. Как решит эту проблему?