① dedecms怎樣使用php函數
直接用,用原生的就行
② 織夢循環自定義函數怎麼調用方法
板里寫一句代碼,就可以得到自己想要的結果了。下面舉一個例子來說明一下使版用dedecms如何添加權自定義函數。
比如,我想在首頁通過會員id獲得會員的名稱,我可以這樣寫一個自定義函數:
function GetMemberName($str){
$dsql = new Dedesql(false);
$row = $dsql-
③ dedecms擴展函數添加,在前台調用
你可以截圖來詳細說明你的情況,我看能不能大幫上忙
④ 檢驗用戶是否有權使用某功能的織夢函數TestPurview
函數TestPurview($n)雖然,看上去只是一個相對比較簡單的函數,但是這個函數是非常非常重要的,試想一下如果一個系統中沒有檢驗某個用
戶是否有許可權操作某些功能的話,那麼,這個系統一定非常危險,因為,隨便一個人都可以操作某個功能,例如,進入後台,刪除欄目,刪除資料庫等,就如同一個
家四周都沒有牆一樣,隨便什麼人都可以進入,這樣的家完全就是公共場合,完全沒有什麼安全可言,一個系統也是如此。
所以,檢測系統函數就比較重要了,當然,光這個一個函數還不夠,不光要檢驗用戶的使用許可權,還要檢驗用戶密碼,是不是管理員,甚至是用戶登錄ip等,都要檢驗一下,這樣才可以稱得上安全的系統。
本函數在「管理員登陸類」userlogin.class.php裡面的第一個函數就是它,返回的值是true或false,若有許可權則返回trure否則返回false。
通過教程「織夢中cookie和session的應用」我們知道了,當我們登錄後台後,織夢系統會把登錄的用戶信息寫入session裡面,並把session存放在/data/session文件夾裡面。
因為不同的用戶登錄後台,產生的session是不一樣的,我就在後台注冊一個發布員,用戶名為fby。並且,在後台定義「信息發布員」的許可權如下圖所示。
登錄/注冊後可看大圖
我整理了一下「信息發布員」的許可權如下:
列出授權欄目(t_AccList)
發布授權文檔(a_AccNew)
列出授權文檔(a_AccList)
列出我發布的文檔(a_MyList)
修改我發布的文檔(a_MyEdit)
刪除我發布的文檔(a_MyDel)
更改個人密碼(sys_MdPwd)
評論管理(sys_Feedback)
管理我的上傳(sys_MyUpload)
當我用fby用戶名登錄後,在data/session/文件夾裡面,生成一個名為sess_3vtlqpg0pnlmc63pd5ai86gl16 的 session 。這個session裡面的內容如下所示。
securimage_code_value|s:4:"npll";
dede_admin_id|s:1:"8";
dede_admin_type|s:1:"1";
dede_admin_channel|s:0:"";
dede_admin_name|s:3:"fby";
<font color="Blue">dede_admin_purview|s:107:"t_AccList
a_AccNew a_AccList a_MyList a_MyEdit a_MyDel sys_MdPwd sys_Feedback
sys_MyUpload plus_留言簿模塊 ";</font>
dede_admin_style|s:10:"newdedecms";
復制代碼
如果我們以超級管理員,也就是最高級別的身份登錄後台後,我們同樣得到類似的如下內容。
securimage_code_value|s:4:"2gsf";
dede_admin_id|s:1:"1";
dede_admin_type|s:2:"10";
dede_admin_channel|s:1:"0";
dede_admin_name|s:5:"admin";
<font color="Blue">dede_admin_purview|s:15:"admin_AllowAll ";</font>
dede_admin_style|s:10:"newdedecms";
復制代碼
當登錄後,這些是如何生成的?這個我們在上面提到了,以前的教程已經詳細講解了,其實,就是通過「管理員登陸類」userlogin.class.php裡面的函數來實現的,當然,不只是這個文件。
我們分析上面這些,完全就是為了函數TestPurview($n)作準備的,好了,現在我們來分析一下這個用戶許可權檢驗函數。
函數:
function TestPurview($n)
{
$rs = FALSE;
$purview = $GLOBALS['cuserLogin']->getPurview();
if(preg_match('/admin_AllowAll/i',$purview))
{
return TRUE;
}
if($n=='')
{
return TRUE;
}
if(!isset($GLOBALS['groupRanks']))
{
$GLOBALS['groupRanks'] = explode(' ',$purview);
}
$ns = explode(',',$n);
foreach($ns as $n)
{
//只要找到一個匹配的許可權,即可認為用戶有權訪問此頁面
if($n=='')
{
continue;
}
if(in_array($n,$GLOBALS['groupRanks']))
{
$rs = TRUE; break;
}
}
return $rs;
}
復制代碼
通過getPurview()方法,我們從session得到了dede_admin_purview裡面的值,因
為,$GLOBALS['cuserLogin']是實例化「登錄類」的對像,而這個登錄類的構造函數,在我們實例化時,已經把session裡面的值賦
給了$this->userPurview,代碼如下所示。
$this->userID = $_SESSION[$this->keepUserIDTag];
$this->userType = $_SESSION[$this->keepUserTypeTag];
$this->userChannel = $_SESSION[$this->keepUserChannelTag];
$this->userName = $_SESSION[$this->keepUserNameTag];
$this->userPurview = $_SESSION[$this->keepUserPurviewTag];
$this->adminStyle = $_SESSION[$this->keepAdminStyleTag];
復制代碼
從上面代碼我們就不難發現$this->userPurview=$_SESSION['dede_admin_purview'],即
t_AccList a_AccNew a_AccList a_MyList a_MyEdit a_MyDel sys_MdPwd
sys_Feedback sys_MyUpload plus_留言簿模塊這些值,明白了這一點,這個TestPurview($n)就簡單多了。
1、條件判斷:
if(preg_match('/admin_AllowAll/i',$purview))
{
return TRUE;
}
復制代碼
如果我們用的是管理員登錄,那麼,$_SESSION['dede_admin_purview']的值等於admin_AllowAll,返回true,所以,這句代碼就是判斷是不是管理登錄。
2、條件判斷
if($n=='')
{
return TRUE;
}
復制代碼
若參數為空,直接返回true,也就是說,只要不提供功能參數,就認為是可以操作的,所以,這一點要注意了,如果你不小心,忘記寫參數,那麼,很可能本想過慮掉的用戶結果沒有過慮掉,這是非常危險的,所以,這個最好有個提示,有個對話框,這樣可以提醒管理員。
3、把登錄的後台的用戶的許可權,例如,本例子中的「信息發布員」許可權$_SESSION['dede_admin_purview'],轉換成數組存放到全局變數$GLOBALS['groupRanks']裡面,以備下面之用。
if(!isset($GLOBALS['groupRanks']))
{
$GLOBALS['groupRanks'] = explode(' ',$purview);
}
復制代碼
4、把功能參數轉換成數組:$ns = explode(',',$n);
5、遍歷:foreach($ns as
$n),就是把傳遞過來的功能參數,通過in_array($n,$GLOBALS['groupRanks'])這個函數進行對比,看一下$n裡面的有
沒有存功能在數組$_SESSION['dede_admin_purview']裡面。例如:本例子信息發布員的許可權在上我們已經知道了
有:t_AccList a_AccNew a_AccList a_MyList a_MyEdit a_MyDel sys_MdPwd
sys_Feedback sys_MyUpload plus_留言簿模塊這些值。
如果$n是:a_AccNew,t_New,經過上面一個遍歷,我們發現,其中a_AccNew在數
組$GLOBALS['groupRanks'],函數立馬跳出來,返回一個true,也就是說織夢的這個函數,只要$n裡面有一個是
與$GLOBALS['groupRanks']裡面的值一樣,
就可以操作這個頁面。而不需要全部都在$GLOBALS['groupRanks']裡面才可以操作這個頁面。
當然,你可以根據自己需要,直接嚴格匹配,只有全部都在登錄用戶的許可權裡面才可以操作頁面。這個功能也簡單,只要作如下更改:
if(!in_array($n,$GLOBALS['groupRanks']))
{
$rs = FALSE; break;
}
復制代碼
也就是把$n參數裡面的值判斷一下,只要有一個不在登錄用戶的許可權裡面,就返回false,退出操作。
⑤ 怎樣做php動態網站。人家說用織夢簡單一點。可我發現調用函數什麼的好麻煩啊!用織夢到底是降低了php
現在的這些CMS說是簡單,可是還是要使用者自己有一定的基礎才能用好的!不過你要是使用dedecms之類的網站生成系統不需要花費很多時間去深入學習的,網上有很多教程!
⑥ 織夢的函數定義在哪裡,怎麼快速查出來路:CheckChannel(),怎樣能得到函數源碼或定義在哪個文件,批量得
織夢的CMS里邊有抄Webservice 所以你襲看到有些東西 可能不在文件夾里 我給你一個DLL反編文件,他可以把所有的DLL開源的東西都反編譯出來 你網路一下叫 Reflector 也就是說使用這個這些代碼都是你的了
⑦ dedecms 怎麼使用全局函數
您好,朋友。跟版網團隊很高興能為您解答:
首先我覺得如果您是織夢的新手的話,應該先去了解織夢的目錄結構,每個目錄中有哪些文件,這些文件都有什麼用。當然你必須了解的那麼清楚,大概了解下就可以。
織夢的templets文件夾是織夢的模板文件夾,這個目錄中主要是放的織夢的模板文件,default這個目錄是織夢默認的模板文件。當然你如果建立了aa目錄的話,只需在系統基本參數設置中將aa設置為模板目錄即可。
織夢模板文件夾下一般放的是已.htm結尾的模板文件,這些模板文件中含有織夢特有的標簽,所有內容都可以通過標簽調用。你在這個文件夾下建立php文件並定義方法是不對的。
織夢的核心文件都在include這個文件夾下,這個目錄下的taglib是織夢核心的類庫文件,如果需要添加全局函數的話一般在include下的extend.func.php 這個文件中添加。
學習織夢的話需要有php,html,css基礎,建議多提問學習。
希望我的回答能夠幫到您。這些都是跟版網手打的,非復制。如果幫助您了,請採納。跟版網-專業織夢模板定製下載站。www.genban.org
⑧ 織夢cms 怎麼查看標簽所表示的函數
給你寫了一個,不過沒有經過實驗,不知道是否可行版。
1
2
3
4
5
<div class="hidden" id="con_c_[field:global name='autoindex' runphp='yes']if(@權me==1){@me='.@me." style="display:block;"';}[/field:global]">
<a href="[field:arcurl/]" target="_blank">
<img src="[field:litpic/]"/>
</a>
</div>
⑨ DedeCMS緩存函數,如何調用dede緩存函數的添加,讀取,刪除緩存機
不看不知道,dedecms的緩存寫成了dede小助手,使用先要調用dede 緩存小助手才能使用哦! 我們了解了dedecms的緩存函數,對我們二次開發非常有用,省心,高效! dedecms緩存主要使用了以下三個方法: helper('cache'); 啟動了dede緩存小助手 SetCache('緩存首文件夾', '緩存數據名', '緩存數據', '緩存超時(時間)') ;以上信息設定緩存信息便會自動緩存,並生成緩存數據 GetCache('緩存首文件夾','緩存數據名''); 設置兩個參數便可獲dede取緩存內容值 DelCache('緩存首文件夾','緩存數據名'');刪除緩存內容也是設置兩個參數,就可以刪除緩存 以下提供二次開發 「調用dede緩存函數的添加,讀取,刪除緩存」函數代碼如下: //php腳本開始 require_once(dirname(__FILE__)."/../include/common.inc.php");//載入dede核心 helper('cache');//載入dedecms緩存小助手 $verifyhours_cache=GetCache('isverify','verifyhours');//取得verifyhours值 if($verifyhours_cache==''){ //如果verifyhours緩存為空,過期,更新緩存 SetCache('isverify', 'verifyhours', $verifyhours, $verifyhours); } //刪除緩存 if(DelCache('isverify','verifyhours')){echo '刪除緩存成功!';} 感謝你的分享,岑溪網站開發原創!
⑩ DEDECMS 是如何不使用 $_POST 函數獲取表單值的
extract 用這個抄函數將 $_POST 裡面的方法解析成變數,其中變數名是他的key值,例如
$_POST = array('a' => 1, 'b' =>2);
用 extract($_POST) 解析出來就變成
$a = 1;
$b = 2;