袁来如此的工作笔记
袁来如此的工作笔记
竹杖芒鞋轻胜马,谁怕? 一蓑烟雨任平生。

destoon 的登录过程,如何使用cookie来判断用户是否登录

浏览量:880

第一部分是destoon 的登录过程

登录是使用member->login的函数来实现的login.inc.php

代码在login.inc.php这个文件中


[php] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. if($MOD['passport'] == 'uc'include DT_ROOT.'/api/'.$MOD['passport'].'.inc.php';  

  2. //7 line  

  3. $do = new member;  

  4. //42 line  

  5. $user = $do->login($username$password$cookietime);  


member这个类在member.class.php中定义



[php] view plain copy
 在CODE上查看代码片派生到我的代码片
  1.     function login($login_username$login_password$login_cookietime = 0, $admin = false) {  

  2.         global $DT_TIME$DT_IP$MOD$MODULE$L;  

  3. ........................  

  4.         $auth=encrypt($user['userid']."\t".$user['username']."\t".$user['groupid']."\t".$user['password']."\t".$user['admin'], md5(DT_KEY.$DT_IP));  

  5.         set_cookie('auth'$auth$cookietime);  

  6.         set_cookie('userid'$user['userid'], $cookietime);  

  7.         set_cookie('username'$user['username'], $DT_TIME + 86400*365);  

  8.         $this->db->query("UPDATE {$this->table_member} SET loginip='$DT_IP',logintime=$DT_TIME,logintimes=logintimes+1 WHERE userid=$userid");  

  9.         return $user;  

  10.     }  


如果登录成后,那么给用户设置cookie,使用的set_cookie函数是在include/global.func.php中实现



[php] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. function set_cookie($var$value = ''$time = 0) {  

  2.     global $CFG$DT_TIME;  

  3.     $time = $time > 0 ? $time : (empty($value) ? $DT_TIME - 3600 : 0);  

  4.     $port = $_SERVER['SERVER_PORT'] == '443' ? 1 : 0;  

  5.     $var = $CFG['cookie_pre'].$var;  

  6.     return setcookie($var$value$time$CFG['cookie_path'], $CFG['cookie_domain'], $port);  

  7. }  


如果说用js来判断是否登录,可以通过cookie来取得相应的值是否为空


在这里说明一下cookie是有前缀的,所以推荐使用系统带的取得cookie的函数 get_cookie



系统中原自带的处理判断用户是否登录是使用的以下函数,在footer.htm中

show_task('{$destoon_task}');

经过编译后会转化成

<script type="text/javascript">
show_task('moduleid=1&html=index');

</script>

show_task函数在page.js中实现,有兴趣的话,可以看一下,返回的是一段js代码,js模板在template/chip/line.htm中


打赏