Что нового
SEO форум вебмастеров - маркетинг, продвижение и оптимизация сайтов

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

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

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 ?> вывожу на странице полной новости.

Спасибо. Буду благодарен за любую подсказку.
 
Проблему решил с безопасным выводом, в скрипте вписал
Код:
<?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] - доп поле не работает ( не выводит цифру для запроса в бд)

Как решить такую проблему?????
 
Последнее редактирование:
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 Пишу все может патом кому нибудь понадобиться. Да и самому нужна помощь. Как решит эту проблему?
 
Верх