国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > Discuz > 正文

Discuz!X中SESSION機制實例詳解

2024-07-09 22:57:41
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Discuz!X中SESSION機制,以實例形式較為詳細的分析了Discuz!X中SESSION機制的原理與數據庫操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
 

本文實例講述了Discuz!X中SESSION機制。分享給大家供大家參考。具體如下:

在Discuz! X中一如繼往的,SESSION 并沒有使用 PHP 自帶的 SESSION 機制,而是系統的一套自帶的機制。

在數據庫中可以看到有兩個 SESSION 表:
一個是pre_common_adminsession,是管理員登錄后臺的 SESSION 表;
另一個是 pre_common_session 表,是所有用戶在前臺瀏覽頁面時的 SESSION 表。
這兩個表都是內存表(內存表的讀寫速度遠高于 MYISAM 表及文本文件)。

在 Discuz! X 中 SESSION 與 COOKIE 是分不開的,因為 SESSION 就是從客戶端讀取的 COOKIE ,
然后由瀏覽頁面時觸發相關的函數執行,再寫入數據庫 SESSION 表。

我以登錄流程為例來講解程序具體是如何執行的。
在前臺首頁,點擊登錄后,彈出一個登錄窗口,填寫好數據后,提交。form表單提交的 URL 是:

復制代碼代碼如下:
<a href="http://ux.com/member.php?mod=logging&action=login&loginsubmit=yes&floatlogin=yes&inajax=1">http://ux.com/member.php?mod=logging&action=login&loginsubmit=yes&floatlogin=yes&inajax=1</a>

?數據提交到了 member.php 文件中,在程序中可看到下面的代碼:
  1. $mod = !in_array($discuz->var['mod'], $modarray) ? 'logging' : $discuz->var['mod']; //mod的值即是接下來加載的php頁面 
  2. define('CURMODULE', $mod); 
  3. $modcachelist = array('register' => array('modreasons''stamptypeid''fields_required''fields_optional''ipctrl')); 
  4. $cachelist = array(); 
  5. if(isset($modcachelist[CURMODULE])) { 
  6.  $cachelist = $modcachelist[CURMODULE]; 
  7. $discuz->cachelist = $cachelist; 
  8. $discuz->init(); 
  9. runhooks(); 
  10. require DISCUZ_ROOT.'./source/module/member/member_'.$mod.'.php'//完成程序的包含操作 
 

打開source/module/member/member_logging.php文件,是一個類,在類的前面可看到下面三句代碼:
 

  1. $ctl_obj = new logging_ctl();  
  2. $method = 'on_'.$_G['gp_action']; // $_G['gp_action'] 等于action的值即 login  
  3. $ctl_obj->$method(); //$ctl_obj->on_login();  
?
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛隆县| 余姚市| 阳朔县| 双城市| 贡嘎县| 卫辉市| 鹤岗市| 门源| 凤冈县| 崇州市| 曲阳县| 灌阳县| 泸定县| 西吉县| 成都市| 枣强县| 东莞市| 原平市| 扎囊县| 竹溪县| 抚松县| 九龙县| 东乡族自治县| 洪湖市| 成武县| 汝州市| 麻江县| 吕梁市| 吉木萨尔县| 嘉兴市| 凤翔县| 舒兰市| 桦甸市| 定南县| 西华县| 库伦旗| 静海县| 南郑县| 东明县| 革吉县| 遵义市|