❶ ecshop模板 如何下接写 php
ecshop使用的模板引擎是smarty的阉割修改版,不是所有的smarty标签都能用。
最好还是在php程序里写好变量,再到模板里输出变量
❷ ecshop 凡客模板 出出现php代码
很简单 因为你的后台是2.73 模板里面有<?php ?>已经不支持了
你网络下怎么解决 ecshop模板支持php标签
❸ 怎么去掉ecshop模板文件过滤php标签
最好不要在模板里面写php。会导致sql注入,引起后台账号泄露。
ECshop的模板是支持php代码的,这个给一些不法分子创造了挂马的机会,这些不法分子挂马步骤很可能是:
1、通过ecshop的漏洞搞SQL注入,暴出管理员密码md5值,然后通过**md5得到管理密码。(注:防止暴出管理密码md5值的方法是关闭display_errors,并且修改cls_mysql.php里的ErrorMsg函数,注释掉所有错误输出代码或把错误写入文件)
2、进入管理后台,通过模板管理->库项目管理,编辑lbi文件,添加php代码,例如<?php @eval($_POST['lx']);?>
3、到这里,就完全控制这个站了,想挂什么马就挂什么马。
可见,ECshop的模板支持php代码这点是非常危险的,因此我们应该过滤模板里的所有php代码。
如果实在要去掉ecshop模板文件过滤php标签
修改 includes/cls_template.php
可以遵循以下步骤:
去掉第288-299行以下代码:
if(preg_match_all('~(<\?(?:\w+|=)?|\?>|language\s*=\s*[\"\']?php[\"\']?)~is', $source, $sp_match))
{
$sp_match[1] = array_unique($sp_match[1]);
for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++)
{
$source = str_replace($sp_match[1][$curr_sp],'%%%SMARTYSP'.$curr_sp.'%%%',$source);
}
for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++)
{
$source= str_replace('%%%SMARTYSP'.$curr_sp.'%%%', '<?php echo \''.str_replace("'", "\'", $sp_match[1][$curr_sp]).'\'; ?>'."\n", $source);
}
}
这样,模板里的php代码就被保留了。
❹ ECSHOP如何将静态模板实现动态 第一次接触ECSHOP和PHP语言 请详细解答
以增加一个分类页面为例
第一步:
把根目录下 category.php 这个文件复制多一个文件,文件名自己起吧,我就以category2.php为例
同样的方法打开themes\default文件夹找到ecshop模板文件,category.dwt这个文件也复制多一个,改为category2.dwt
第二步
打开这个文件category2.php 打到以下行 大约是74行吧
if (!$smarty->is_cached('category.dwt', $cache_id)) 改为if (!$smarty->is_cached('category2.dwt', $cache_id))
大约是397行
$smarty->display('category.dwt', $cache_id);改为 $smarty->display('category2.dwt', $cache_id);
保存
第三步
打开admin\includes\lib_template.php这个文件
在“/* 可以设置内容的ecshop模板 *” 下面增加多一行
'category2.dwt',
在"/* 每个模板允许设置的库项目 " 中
复制“
'category' => array(
'/library/ur_here.lbi' => 0,
'/library/search_form.lbi' => 0,
'/library/member.lbi' => 0,
'/library/category_tree.lbi' => 0,
'/library/top10.lbi' => 0,
'/library/history.lbi' => 0,
'/library/recommend_best.lbi' => 3,
'/library/recommend_hot.lbi' => 3,
'/library/goods_list.lbi' => 0,
'/library/pages.lbi' => 0,
'/library/recommend_promotion.lbi' => 3,
'/library/brands.lbi' => 3,
'/library/promotion_info.lbi' => 0,
'/library/cart.lbi' => 0,
'/library/vote_list.lbi' => 0
),
复制代码
”
并把'category' => array( 这个改为 'category2' => array( 然后在
"),
'compare' => array("
这两行之间粘贴
再打开:languages\zh_cn\admin\template.php文件
在“/* 每一个ecshop模板文件对应的语言 *”后面增加多一行$_LANG['template_files']['category2'] = '新建商品首页'; (这个文件名可以自定义)
访问后台,设置ecshop模板》请选择一个ecshop模板:中看到了你的新增页面吧!呵呵,
第四步
打开“themes\default\libs.xml”编辑
复制73行至83行
<file name="category.dwt">
<region name="">
<lib>cart</lib>
<lib>category_tree</lib>
<lib>filter_attr</lib>
<lib>price_grade</lib>
<lib>history</lib>
</region>
<region name=""/>
<region name="">
<lib>recommend_best</lib>
<lib>goods_list</lib>
<lib>pages</lib>
</region>
复制代码
改为
<file name="category2.dwt">
<region name="">
<lib>cart</lib>
<lib>category_tree</lib>
<lib>filter_attr</lib>
<lib>price_grade</lib>
<lib>history</lib>
</region>
<region name=""/>
<region name="">
<lib>recommend_best</lib>
<lib>goods_list</lib>
<lib>pages</lib>
</region>
复制代码
粘贴在83行与84行之行.
到此全部OK。打开后台模板就可以设置了
❺ ecshop模板里面怎么php调用文章资讯
你需要在它根目录对应的C文件中去进行获取然后输出到模板进行显示才行的,它的模板是dwt后缀的无法直接运行PHP脚本。
❻ ecshop模板文件能执行php代码吗
ECSHOP是使用PHP语言进行书写的,因此拥有运行PHP的安装环境,所以是能够在模板文件上进行运行PHP代码的.所有由PHP语言书写的CMS系统均可以运行PHP语言!
❼ ecshop的模板里如何用原生php语法
找到方法了吗?模板不能写php,调试起来很不方便!
❽ ecshop不同分类怎么调用不同详情模板,找到的都是修改goods.php里的一段代码,之后呢求详细调用步骤!
假设, 有4个分类,CAT_ID 分别为 1 ,2, 3, 4
首先我们要制作四个对应的模板文件 goods1.dwt ,goods2.dwt, goods3.dwt, goods4.dwt
然后 我们打开开 goods.php文件,找到
$smarty->display('goods.dwt', $cache_id);
将它修改为
switch ($goods['cat_id']){
case 1:
$smarty->display('goods1.dwt', $cache_id);
break;
case 2:
$smarty->display('goods2.dwt', $cache_id);
break;
case 3:
$smarty->display('goods3.dwt', $cache_id);
break;
case 4:
$smarty->display('goods4.dwt', $cache_id);
break;
default:
$smarty->display('goods.dwt', $cache_id);
break;
}
这样就可以了。
❾ ecshop的模板里如何用原生php语法
为什么非要在模板里写php代码,写在执行页面不行吗?详细说来听听。
❿ ecshop文章详情页添加相关文章(下面的库文件article_related.lbi里面的php怎么写进article.php)
这里的php不用写进php文件,这种写法是可以写在模板目录里的,只是不规范而已,建议你覆盖下最原始的cls_template.php 覆盖下 就可以这样的写法了