織夢中cookie和session的應(yīng)用,織夢教程
導(dǎo)讀:織夢教程織夢教程織夢中用到了cookie和session,在織夢后臺用的是session,在會員系統(tǒng)首頁用的是cookie,前臺和后臺用到的驗證碼是通過session來實現(xiàn)驗證織夢模板安裝模板織夢。
織夢中用到了cookie和session,在織夢后臺用的是session,在會員系統(tǒng)首頁用的是cookie,前臺和后臺用到的驗證碼是通過session來實現(xiàn)驗證的,我們先從織夢后臺開始分析,織夢系統(tǒng)中的session的應(yīng)用。
當(dāng)我們打開后臺,通過抓取頭文件,如下圖所示。
通過上圖我們可以看到,已經(jīng)創(chuàng)建了一個session 文件。我們分析一下織夢從打開后綴到登錄,程序都執(zhí)行了哪些操作。
當(dāng)我們打開后臺http://localhost/dede后,系統(tǒng)找到index.php文件,然后,在這個文件中引入后臺配置文件config.php,在這個配置文件里引入了“管理員登陸類”,這個類里面的第一句就session_start(),并且在配置文件里接著
包含了common.inc.php文件,直接把驗證碼類也引入,同時,驗證碼初始化,我們打開驗證碼類看一下,你會發(fā)現(xiàn)在驗證碼初始化后,同時把驗證碼存入cookie中,這就是為什么在這個類中經(jīng)常看到session_start()的影子。接著在配置
文件中運行里面的程序,當(dāng)運行到下面的代碼:
$cuserLogin = new userLogin();
if($cuserLogin->getUserID()==-1)
{
header("location:login.php?gotopage=".urlencode($dedeNowurl));
exit();
}
這句是用來判斷用戶是不是已經(jīng)登錄了,如織夢后臺模板果沒有登錄,則轉(zhuǎn)到location里面的路徑。我們打開類文件userlogin.class.php,可以找到方法getUserID(),這個方法是用來判斷用戶id是不是存在,若存在,則返回這個id,否則返回-1。
因為沒有登錄,所以,程序會自動路出config.php,并轉(zhuǎn)到http://localhost/dede/login.php?gotopage=%2Fdedecms%2Fdede%2F這里,即后臺登錄界面,程序也就轉(zhuǎn)到了login.php文件,這個文件正是處理用戶提交的用戶名和密碼,還有驗證碼的。
這個login.php對應(yīng)的模板文件是login.htm,就是我們看到的界面,當(dāng)我們寫上用戶名、密碼和驗證碼后,點提交,這些數(shù)據(jù)將被提交到login.php文件,在62行我們看到代碼if($dopost=='login'),用來處理當(dāng)提交了后,難證用戶名、密碼和驗證碼的。
要注意的是:我們在做這樣的類似的用戶驗證功能時,最好先驗證一下驗證碼,因為驗證碼是通過cookie來實現(xiàn)驗證的,而用戶名和密碼則要查詢數(shù)據(jù)庫,如果驗證碼不正確,白白查詢數(shù)據(jù)庫,浪費資源。織夢也是這樣做的,先通過函數(shù)GetCkVdValue()來驗證,然后,再通過checkUser($userid,$pwd)方法進(jìn)行驗證。
其中GetCkVdValue()在“系統(tǒng)核心函數(shù)存放文件”common.inc.php里面,在這個文件的最后,我們就可以找到。checkUser($userid,$pwd)方法在“管理員登陸類”類文件userlogin.class.php里面約240行,如果用戶名和密碼正確,則返回1,否則返回-1。
若用戶名正確,則執(zhí)行下面的這段代碼:
//success
if($res==1)
{
$cuserLogin->keepUser();
if(!empty($gotopage))
{
ShowMsg('成功登錄,正在轉(zhuǎn)向管理管理主頁!',$gotopage);
exit();
&nbs織夢文章模板p; }
else
{
ShowMsg('成功登錄,正在轉(zhuǎn)向管理管理主頁!',"index.php");
exit();
}
}
這段代碼非常重要,特別是$cuserLogin->keepUser();這個方法的調(diào)用,這方法是為了“保持用戶的會話狀態(tài)”,也是把用戶的信息,寫到cookie里面的重要方法,只有執(zhí)行了這個方法,才能使在我們再打開瀏覽器一個選項卡,再打開后臺,可以不用登錄直接進(jìn)行網(wǎng)站后臺。
這也是下一次打開后臺路徑后,在config.php里面進(jìn)行判斷用戶是不是已經(jīng)登錄,也就是getUserID()是不是等于-1,即if($cuserLogin->getUserID()==-1)的重要依據(jù)。
回過頭來我們再看一下,上面這段代碼中的$cuserLogin->keepUser();這句是如何實現(xiàn)把cookie寫入到session文件中的。$cuserLogin->keepUser()這個方法在文件類userlogin.class.php里面的第281行開始處。要讀懂這個文件,還要打開common.inc.php打到如下代碼。
聲明: 本文由我的SEOUC技術(shù)文章主頁發(fā)布于:2023-07-20 ,文章織夢中cookie和session的應(yīng)用,織夢教程主要講述夢中,標(biāo)簽,織夢網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請保留鏈接: http://www.bifwcx.com/article/web_31316.html
為你推薦與織夢中cookie和session的應(yīng)用,織夢教程相關(guān)的文章
-
通王TWCMS 2.0.3網(wǎng)站模板程序下載
(126)人喜歡 2024-01-15 -
Windows官方原版在哪里下載
(175)人喜歡 2024-01-15 -
WordPress網(wǎng)站模板發(fā)帖標(biāo)題顏色設(shè)置
(131)人喜歡 2024-01-07 -
修改discuz論壇帖子標(biāo)題80字符的長度限制
(249)人喜歡 2024-01-07 -
wordpress程序調(diào)用不帶超鏈接的Tag標(biāo)簽
(234)人喜歡 2024-01-05 -
網(wǎng)站在不同時期需調(diào)整內(nèi)容更新的方向
(112)人喜歡 2023-08-12