phpcms sp4系统中管理员登陆的原理
来源:互联网 发布:山姆 知乎 编辑:程序博客网 时间:2024/05/17 08:47
phpcms sp4系统是个不错的系统,后台的文件也安排的非常有序,一般是以file的参数的值为文件名+.inc.php文件,里面使用的是switch语句来响应不同的action
后台的登录的过程是使用用户名检索出加密后的密码,然后与前台输入过来的密码,加密并进行比较,如果相同,那就设置"auth",cookie到前台,cookie中包含用户名与密码,加密过的然后转向到"?",也就是当前admin文件,
大概上说下后台管理员的登录过程,实现的动作是使用login.inc.php文件
if($dosubmit){require PHPCMS_ROOT.'languages/'.LANG.'/member.lang.php';require PHPCMS_ROOT.'member/include/member.class.php';$member = new member();if(!isset($forward)) $forward = URL;if(!isset($checkcodestr)) $checkcodestr = '';if($code->check()) checkcode($checkcodestr, 1, HTTP_REFERER);$result = $member->login($username, $password);
member类的实现文件在member.class.php文件中
function login($username, $password, $cookietime = 0){//...............if(!$cookietime) $get_cookietime = get_cookie('cookietime');$_cookietime = $cookietime ? intval($cookietime) : ($get_cookietime ? $get_cookietime : 0);$cookietime = $_cookietime ? TIME + $_cookietime : 0;$phpcms_auth_key = md5(AUTH_KEY.$_SERVER['HTTP_USER_AGENT']);$phpcms_auth = phpcms_auth($this->_userid."\t".$md5_password, 'ENCODE', $phpcms_auth_key);set_cookie('auth', $phpcms_auth, $cookietime);set_cookie('cookietime', $_cookietime, $cookietime);//...............}
后台的登录的过程是使用用户名检索出加密后的密码,然后与前台输入过来的密码,加密并进行比较,如果相同,那就设置"auth",cookie到前台,cookie中包含用户名与密码,加密过的然后转向到"?",也就是当前admin文件,
在admin.php中包含的include/common.inc.php中
$phpcms_auth = get_cookie('auth');if($phpcms_auth){$auth_key = md5(AUTH_KEY.$_SERVER['HTTP_USER_AGENT']);list($_userid, $_password) = explode("\t", phpcms_auth($phpcms_auth, 'DECODE', $auth_key));$_userid = intval($_userid);$sql_member = "SELECT * FROM `".DB_PRE."member_cache` WHERE `userid`=$_userid";$r = $db->get_one($sql_member);if(!$r && cache_member()){$r = $db->get_one($sql_member);}if($r && $r['password'] === $_password){if($r['groupid'] == 2){set_cookie('auth', '');showmessage($LANG['userid_banned_by_administrator']);}@extract($r, EXTR_PREFIX_ALL, '');}else{$_userid = 0;$_username = '';$_groupid = 3;set_cookie('auth', '');}unset($r, $phpcms_auth, $phpcms_auth_key, $_password, $sql_member);}
首页判断cookie("auth")是否有值,如果有值,先解密,找出userid,并在数据库上检索出password与当前的password是否相同,如果相同就通过,如果不同那就清除cookie,转向到登录界面
1 0
- phpcms sp4系统中管理员登陆的原理
- phpcms 2008 sp4的模板原理,tag的解析原理
- phpcms sp4系统中内容分表管理实现
- phpcms 2008 sp4的这个版本如何添加一个系统字段
- phpcms 2008 sp4中一个表模型中不能出现两个地区的错误的修复
- 【phpcms-v9】phpcms-v9系统中内容详情页登陆后返回页面
- xp系统以Administrator管理员登陆
- Ubuntu中忘记管理员密码和root密码以后登陆系统
- 【phpcms-v9】phpcms-v9中系统管理员登陆页面控制器文件分析:phpcms/modules/admin/index.php
- phpcms 默认模板的会员登陆位置
- win2000(xp 不用密码登陆系统)忘记管理员密码时的综合解决方案
- 学生学籍管理系统_管理员登陆对学生的信息进行操作
- 让管理员的帐号无须密码登陆
- 让管理员的帐号无须密码登陆
- Tomcat 管理员不能登陆问题的解决
- 文件读写图书管理系统(注册,管理员,登陆)
- 新闻管理系统(一)管理员登陆实现
- Win10管理员用户被禁用,无法登陆系统
- poj 2337 Catenyms 【图论-欧拉图-按字典序输出路径】
- Nginx在阿里云配置
- 经典算法--最大存水量问题
- C#实现泛型选择排序算法
- UVA 699 二叉树结合数组求求解点的值
- phpcms sp4系统中管理员登陆的原理
- 石子合并(一)
- INVALID_CHARACTER_ERR: 指定的 XML 字符无效或非法。
- 禁止Gradle检查PNG的合法性
- phpcms sp4系统中内容分表管理实现
- sql 复习笔记(一)
- JAVA虚拟机的垃圾回收机制
- WINDOWS 数据类型
- hdu5245——Joyful(概率论求期望)