EOMY.NET Хостинг EOMY.NET: Форум поддержки
Выполнение php из .tpl
Автор
Сообщение
Dr.Bodja Хостинг — это наше всё! Зарегистрирован: 24.07.2007 Сообщения: 142 Откуда: Украина 1479
Добавлено: Вт, 30 Июн, 2009 15:12 Заголовок сообщения: Выполнение php из .tpl
Вообщем нашел Simple CMS, сайта уже нет, CMS простенькая, все хранится в .dat. Мне нужно, чтобы выполнялся php код.
Код:
$main=loadtpl("main");
eval("\$str = \"".$main."\";");
echo $str;
Как я понимаю нужно дописать в eval, но тут так все сделано... Надеюсь на вашу помощь.
Спасибо! _________________База знаний Lineage 2
Вернуться к началу
[LP]LordPro.teus Призрак Лорда Зарегистрирован: 26.07.2007 Сообщения: 5092 42282
Добавлено: Вт, 30 Июн, 2009 15:21 Заголовок сообщения:
Dr.Bodja
Код: eval("\$str = \"".$main."\";");
echo $str;
а не проще:
? _________________
До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь !
Вернуться к началу
Dr.Bodja Хостинг — это наше всё! Зарегистрирован: 24.07.2007 Сообщения: 142 Откуда: Украина 1479
Добавлено: Вт, 30 Июн, 2009 16:38 Заголовок сообщения:
[LP]LordPro.teus писал(а): Dr.Bodja
Код: eval("\$str = \"".$main."\";");
echo $str;
а не проще:
?
Тогда некорректно отображается сам сайт.
Вот полный 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
Вернуться к началу
[LP]LordPro.teus Призрак Лорда Зарегистрирован: 26.07.2007 Сообщения: 5092 42282
Добавлено: Вт, 30 Июн, 2009 16:44 Заголовок сообщения:
Там eval ни разу не нужна... если нужно впихнуть что-то в кавычки - проще заюзать обычную конкатенацию, чем eval... возможно, в этом и ошибка _________________
До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь !
Вернуться к началу
Dr.Bodja Хостинг — это наше всё! Зарегистрирован: 24.07.2007 Сообщения: 142 Откуда: Украина 1479
Добавлено: Вт, 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
Вернуться к началу
Dr.Bodja Хостинг — это наше всё! Зарегистрирован: 24.07.2007 Сообщения: 142 Откуда: Украина 1479
Добавлено: Вт, 30 Июн, 2009 16:57 Заголовок сообщения:
Все решил, причем очень просто.
Код:
echo $str; заменил на echo eval(' ?'.'>'.$str.'<'.'?php ');
_________________База знаний Lineage 2
Вернуться к началу
Вячеслав Зарегистрирован: 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();
?>
видимо что то нужно в нем поменять,иначе постоянно выдает ошибку
Вернуться к началу
Powered by phpBB © 2001, 2005 phpBB Group