① ecshop广告函数在哪个文件夹
需要自己写
functionget_advlist($position,$num=0){
$arr=array();
$limit_string='';
if($num>0)
{
$limit_string='limit'.$num;
}
$sql="selectap.ad_width,ap.ad_height,ad.ad_id,ad.ad_name,ad.ad_code,ad.ad_link,ad.ad_id,ad.link_manfrom".$GLOBALS['ecs']->table('ad_position')."asapleftjoin".$GLOBALS['ecs']->table('ad')."asadonad.position_id=ap.position_idwhereap.position_name='".$position."'andUNIX_TIMESTAMP()>ad.start_timeandUNIX_TIMESTAMP()<ad.end_timeandad.enabled=1$limit_string";
$res=$GLOBALS['db']->getAll($sql);
foreach($resas$idx=>$row)
{
$arr[$row['ad_id']]['name']=$row['ad_name'];
$arr[$row['ad_id']]['title']=$row['link_man'];
$arr[$row['ad_id']]['url']="affiche.php?ad_id=".$row['ad_id']."&uri=".$row['ad_link'];
$arr[$row['ad_id']]['image']='data/afficheimg/'.$row['ad_code'];
$arr[$row['ad_id']]['ad_code']=$row['ad_code'];
$arr[$row['ad_id']]['content']="<ahref='".$arr[$row['ad_id']]['url']."'title='".$row['ad_name']."'target='_blank'><imgsrc='data/afficheimg/".$row['ad_code']."'title='".$row['ad_name']."'alt='".$row['ad_name']."'/></a>";
}
return$arr;
}
② ecshop中模板自定义函数为什么没有{assign var="name" value=值 } 那么ecshop中是用什么在模板中赋值变量
全局_SESSION
局部 {$smarty.值}
你这是明显的接触 phpcms和织梦接触多了,这些cms改变了编程思维。但ecshop用了正统的smarty
③ ecshop在模板里怎么使用自定义函数,我说的是在htm页面上使用
很多种方法。通过JS调取代码函数。通过模板的方法insert函数。都行。
④ ecshop中javascript函数eval出错问题
需要看下js的上下文,另说eval函数在一般情况下是不建议使用的。
⑤ ecshop被挂马,首页index.php总是被篡改成html代码,删不掉改不了还。
最近9月份出来的ecshop漏洞,对于2.72 .2.73 3.0 3.6 4.0版本的sql执行getshell漏洞导致的用ecshop程序的网站被入侵 user.php被删除 而且网站首页总是被篡改经常是标题和描述被修改从网络搜索打开网站跳转到一些博cai网站,应该对转义函数进行过滤防止post提交生成php脚本木马文件,而且这个被篡改的问题是反复性质的,清理删除代码后没过多久就又被篡改了。必须要对程序漏洞的根源问题进行修复网站漏洞,清理已经被上传的隐蔽性的木马后门。
如果对程序代码不熟悉的话建议找专业做网站安全公司来处理此问题,国内推荐Sinesafe,绿盟,启蒙星辰等等。
⑥ 怎么去掉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代码就被保留了。
⑦ dedecms/ecshop连接数据库类中构造函数为什么要定义一个变量,如果为真才连接数据库
先不连接主要是为了缓解服务器压力,因为这样的cms系统一般在加载数据库连接类的时候就进行初始化,但这个时候并没有进行实际的向数据库操作,所以减小服务器的连接数,到用的时候再去判断是否连接,如果未连接就去连接。
⑧ ecshop公共函数库、类库如何使用
复习ecshop项目
1. 理解Echsop的文件结构(文件夹、文件分别用来干什么用?)
2. 公共函数库、类库如何使用?
3. 分析Ecshop数据库中常用数据表的结构
4. 分析系统提供的类库、函数库、公共文件等
5. 分析ecshop中每个功能是如何通过MVC实现的功能?可以以用户中心为例展开
......你看看这个计划是和你一样的吧
⑨ ecshop中$GLOBALS函数保存在那个文件
$GLOBALS 是PHP的全局变量,不是保存在文件里的。只要是 PHP 代码就有,不是 ecshop 独有变量。
⑩ ecshop中javascript函数eval出错问题
建议你找专业的js工程师给你解决这个问题