EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
RSS Feed  

Выполнение php из .tpl

 
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB
Выполнение php из .tpl
Автор Сообщение
Dr.Bodja
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 24.07.2007
Сообщения: 146
Откуда: Украина
1702 Монеты

СообщениеДобавлено: Вт, 30 Июн, 2009 15:12    Заголовок сообщения: Выполнение php из .tpl Ответить с цитатой

Вообщем нашел Simple CMS, сайта уже нет, CMS простенькая, все хранится в .dat. Мне нужно, чтобы выполнялся php код.
Код:

$main=loadtpl("main"); 
eval("\$str = \"".$main."\";");
echo $str;

Как я понимаю нужно дописать в eval, но тут так все сделано... Надеюсь на вашу помощь.
Спасибо!
_________________
База знаний Lineage 2
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Yahoo Messenger
[LP]LordPro.teus
Призрак Лорда
Призрак Лорда


Зарегистрирован: 26.07.2007
Сообщения: 5123

44732 Монеты

СообщениеДобавлено: Вт, 30 Июн, 2009 15:21    Заголовок сообщения: Ответить с цитатой

Dr.Bodja
Код:
eval("\$str = \"".$main."\";");
echo $str;

а не проще:
Код:
echo $main;

?
_________________

А ведь еще не поздно смотаться на Азовское море, согреться на солнышке...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Dr.Bodja
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 24.07.2007
Сообщения: 146
Откуда: Украина
1702 Монеты

СообщениеДобавлено: Вт, 30 Июн, 2009 16:38    Заголовок сообщения: Ответить с цитатой

[LP]LordPro.teus писал(а):
Dr.Bodja
Код:
eval("\$str = \"".$main."\";");
echo $str;

а не проще:
Код:
echo $main;

?
Тогда некорректно отображается сам сайт.

Вот полный index.php
Код:

<?php
  include("config.php");

//Счетчик
if($file=@fopen($path."res/count.dat","a"))
{
    fclose($file);
    if(filemtime ($path."res/count.dat")<mktime( 0,0,0,date("m",time()),date("d",time()),date("Y",time())))
    {
        $f=fopen($path."res/count.dat","w");
        fclose($f);   
    }

    $file=fopen($path."res/count.dat","a");
    flock($file,LOCK_EX);
    $stat=$_SERVER['REMOTE_ADDR']."|".substr($_SERVER['HTTP_USER_AGENT'],0,100)."\n";
    fwrite($file,$stat);
    flock($file,LOCK_UN);
    fclose($file);
}
else
{
    header('Content-Type: text/html; charset=windows-1251');
    die("Файл счетчика не доступен для записи!");   
}



 
//Скачивалка файлов 
if(strpos($_SERVER['REQUEST_URI'],"res/file/")>0)
{
    $q=explode("/",$_SERVER['REQUEST_URI']);
    $q=$q[count($q)-1];
    $file=$path."res/file/".$q;
    if(!file_exists($file)) die('file not found!');
   
    $w=@getimagesize($file);
    if($w)
    {
        header("Content-type: {$w['mime']}");           
    }
    else
    {
       header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
       header ("Content-Type: application/octet-stream");
       header ("Content-Length: " . filesize($file));
       header ("Content-Disposition: attachment; filename=$q");
    }
   
    $wer=unserialize(join("",file($file.".dataa")));       
    $wer[1]=$wer[1]+1;
    $wer=serialize($wer);
   
    if(is_writable($file.".dataa"))
    {
        $f=fopen($file.".dataa","w");
        flock($f,LOCK_EX);
        fwrite($f,$wer);
        flock($f,LOCK_UN);
        fclose($f);
    }
   
       
    if(is_readable($file))
        readfile($file);
    else
        die('Cannot read file!');
       
    die();   
}
 
  $title=$config['sitename'];

$description=$config['description'];
$keywords=$config['keywords'];
$menu='';
$content='';
 
 
  function title($text)
{
  global $title;
  global $config;
  $title.=$config['delimeter'].$text;

}

function loadtpl($tpl)
{
   $template =addslashes(join("",file("./res/tpl/".$tpl.".html")));
     $template = str_replace("\\'", "'", $template);
     return $template;

}

if(file_exists($path."res/tpl/menu.html"))
{
    $menu=loadtpl("menu");
    eval("\$menu = \"".$menu."\";");
}
else
die('Меню не обнаружено.');


if(file_exists($path."res/data/main.html"))
{
    if(!isset($_GET['page'])) $_GET['page']='main';

        if(!preg_match("/^[a-zA-Z0-9]+$/", $_GET['page']))
            {
              Header("Location: /");
              die();
            }     
        if(!file_exists($path."res/data/".$_GET['page'].".html"))
        {
              Header("Location: /");
              die();           
        }
        $page=unserialize(join("",file($path."res/data/".$_GET['page'].".html")));
        title($page['title']);
        $keywords.=" ".$page['keywords'];
        $description.=" ".$page['description'];
        $temp=tempnam($path."res/data/", "temp");
        $f = fopen($temp, "w");
        fwrite($f,$page['content']);
        fclose($f);
        ob_start();       
        include($temp);
        $content=ob_get_contents();
        ob_clean();
        unlink($temp);
       
}
   
   
$main=loadtpl("main"); 
eval("\$str = \"".$main."\";");

echo $str;
 
?>

_________________
База знаний Lineage 2
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Yahoo Messenger
[LP]LordPro.teus
Призрак Лорда
Призрак Лорда


Зарегистрирован: 26.07.2007
Сообщения: 5123

44732 Монеты

СообщениеДобавлено: Вт, 30 Июн, 2009 16:44    Заголовок сообщения: Ответить с цитатой

Там eval ни разу не нужна... если нужно впихнуть что-то в кавычки - проще заюзать обычную конкатенацию, чем eval... возможно, в этом и ошибка
_________________

А ведь еще не поздно смотаться на Азовское море, согреться на солнышке...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Dr.Bodja
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 24.07.2007
Сообщения: 146
Откуда: Украина
1702 Монеты

СообщениеДобавлено: Вт, 30 Июн, 2009 16:54    Заголовок сообщения: Ответить с цитатой

А вот еще config.php. Тут и $str.
Код:

<?
//Следующая строка обязательно должна быть третьей в файле!
$str='a:8:{s:8:"sitename";s:34:"Информационный сайт игры Lineage 2";s:7:"siteurl";s:28:"http://10.0.146.226/lineage/";s:9:"adminmail";s:20:"pod-bogdan@yandex.ru";s:9:"delimeter";s:4:" >> ";s:8:"keywords";s:0:"";s:11:"description";s:0:"";s:6:"logina";s:5:"LOGIN";s:9:"passworda";s:10:"PassworD";}';


$config=unserialize($str);
$path=dirname(__FILE__)."/";

$sitename=$config['sitename'];
$siteurl=$config['siteurl']; 
if($siteurl=='')             
{
    $siteurl="http://".$_SERVER['SERVER_NAME'];   
}


$name=$config['logina'];
$pass=$config['passworda']
?>

_________________
База знаний Lineage 2
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Yahoo Messenger
Dr.Bodja
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 24.07.2007
Сообщения: 146
Откуда: Украина
1702 Монеты

СообщениеДобавлено: Вт, 30 Июн, 2009 16:57    Заголовок сообщения: Ответить с цитатой

Все решил, причем очень просто.
Код:

echo $str; заменил на echo eval(' ?'.'>'.$str.'<'.'?php ');

_________________
База знаний Lineage 2
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Yahoo Messenger
Вячеслав



Зарегистрирован: 22.11.2010
Сообщения: 1

281 Монеты

СообщениеДобавлено: Пн, 22 Ноя, 2010 06:56    Заголовок сообщения: Ответить с цитатой

Здравствуйте!! У меня вопрос в тему! Не могу установить код биржы sape на php в файл шаблона .tpl
Помогите пожалуйста!!
вот код футера:

<div id="footer">
{$_HOOK_FOOTER_}

</div>


{if $smarty.const.SIFR_ENABLED == 1}
{literal}
<script type="text/javascript">
//<![CDATA[
if(typeof sIFR == "function"){
sIFR.replaceElement(named({sSelector:"body h1", sFlashSrc:webPath + "sifr/sifr.swf", sColor:"{/literal}{$smarty.const.SITE_HEADER_TEXT}{literal}", sLinkColor:"{/literal}{$smarty.const.SITE_HEADER_TEXT}{literal} ", sBgColor:"#FFFFFF", sHoverColor:"#CCCCCC", sWmode:"transparent", sFlashVars:"textalign=left&offsetTop=0"}));

sIFR.replaceElement(named({sSelector:"body .side-header", sFlashSrc:webPath + "sifr/sifr.swf", sColor:"{/literal}{$smarty.const.PANEL_LINKS_COLOR}{literal}", sLinkColor:"{/literal}{$smarty.const.PANEL_LINKS_COLOR}{literal}", sBgColor:"#FFFFFF", sHoverColor:"#CCCCCC", sWmode:"transparent", sFlashVars:"textalign=left&offsetTop=0"}));


sIFR.replaceElement(named({sSelector:"body .logo-text", sFlashSrc:webPath + "sifr/sifr.swf", sColor:"{/literal}{$smarty.const.BODY_TEXT_COLOR}{literal}", sLinkColor:"{/literal}{$smarty.const.BODY_TEXT_COLOR}{literal} ", sWmode:"transparent", sFlashVars:"textalign=left&offsetTop=0"}));
};
//nPaddingTop:10, nPaddingBottom:10,
//]]>

</script>
{/literal}
{/if}
{$smarty.const.TRACKING_CODE}

{$_HOOK_LAST_FOOTER_}



и код который нужно вставить:

<?php
if (!defined('_SAPE_USER')){
define('_SAPE_USER', 'хххххххххххххххххххххххххххххх');
}
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$o['charset'] = 'UTF-8';
$sape = new SAPE_client($o);
unset($o);
echo $sape->return_links();
?>

видимо что то нужно в нем поменять,иначе постоянно выдает ошибку
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB Часовой пояс: GMT
Страница 1 из 1

 


Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group