织梦中cookie和session的应用,织梦教程
导读:织梦教程织梦教程织梦中用到了cookie和session,在织梦后台用的是session,在会员系统首页用的是cookie,前台和后台用到的验证码是通过session来实现验证织梦模板安装模板织梦。
织梦中用到了cookie和session,在织梦后台用的是session,在会员系统首页用的是cookie,前台和后台用到的验证码是通过session来实现验证的,我们先从织梦后台开始分析,织梦系统中的session的应用。 当我们打开后台,通过抓取头文件,如下图所示。 通过上图我们可以看到,已经创建了一个session 文件。我们分析一下织梦从打开后缀到登录,程序都执行了哪些操作。 当我们打开后台http://localhost/dede后,系统找到index.php文件,然后,在这个文件中引入后台配置文件config.php,在这个配置文件里引入了“管理员登陆类”,这个类里面的第一句就session_start(),并且在配置文件里接着 包含了common.inc.php文件,直接把验证码类也引入,同时,验证码初始化,我们打开验证码类看一下,你会发现在验证码初始化后,同时把验证码存入cookie中,这就是为什么在这个类中经常看到session_start()的影子。接着在配置 文件中运行里面的程序,当运行到下面的代码: $cuserLogin = new userLogin(); if($cuserLogin->getUserID()==-1) { header("location:login.php?gotopage=".urlencode($dedeNowurl)); exit(); } 这句是用来判断用户是不是已经登录了,如织梦后台模板果没有登录,则转到location里面的路径。我们打开类文件userlogin.class.php,可以找到方法getUserID(),这个方法是用来判断用户id是不是存在,若存在,则返回这个id,否则返回-1。 因为没有登录,所以,程序会自动路出config.php,并转到http://localhost/dede/login.php?gotopage=%2Fdedecms%2Fdede%2F这里,即后台登录界面,程序也就转到了login.php文件,这个文件正是处理用户提交的用户名和密码,还有验证码的。 这个login.php对应的模板文件是login.htm,就是我们看到的界面,当我们写上用户名、密码和验证码后,点提交,这些数据将被提交到login.php文件,在62行我们看到代码if($dopost=='login'),用来处理当提交了后,难证用户名、密码和验证码的。 要注意的是:我们在做这样的类似的用户验证功能时,最好先验证一下验证码,因为验证码是通过cookie来实现验证的,而用户名和密码则要查询数据库,如果验证码不正确,白白查询数据库,浪费资源。织梦也是这样做的,先通过函数GetCkVdValue()来验证,然后,再通过checkUser($userid,$pwd)方法进行验证。 其中GetCkVdValue()在“系统核心函数存放文件”common.inc.php里面,在这个文件的最后,我们就可以找到。checkUser($userid,$pwd)方法在“管理员登陆类”类文件userlogin.class.php里面约240行,如果用户名和密码正确,则返回1,否则返回-1。 若用户名正确,则执行下面的这段代码: //success if($res==1) { $cuserLogin->keepUser(); if(!empty($gotopage)) { ShowMsg('成功登录,正在转向管理管理主页!',$gotopage); exit(); &nbs织梦文章模板p; } else { ShowMsg('成功登录,正在转向管理管理主页!',"index.php"); exit(); } } 这段代码非常重要,特别是$cuserLogin->keepUser();这个方法的调用,这方法是为了“保持用户的会话状态”,也是把用户的信息,写到cookie里面的重要方法,只有执行了这个方法,才能使在我们再打开浏览器一个选项卡,再打开后台,可以不用登录直接进行网站后台。 这也是下一次打开后台路径后,在config.php里面进行判断用户是不是已经登录,也就是getUserID()是不是等于-1,即if($cuserLogin->getUserID()==-1)的重要依据。 回过头来我们再看一下,上面这段代码中的$cuserLogin->keepUser();这句是如何实现把cookie写入到session文件中的。$cuserLogin->keepUser()这个方法在文件类userlogin.class.php里面的第281行开始处。要读懂这个文件,还要打开common.inc.php打到如下代码。
声明: 本文由我的SEOUC技术文章主页发布于:2023-07-20 ,文章织梦中cookie和session的应用,织梦教程主要讲述梦中,标签,织梦网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_31316.html