php学习笔记-4.登录超时的设置
2016-08-03 09:25
465 查看
需求背景:
整个站点(除了登录入口页面外),用户成功登录后,若长时间未操作后,点击页面站点菜单,提示用户登录超时,同时跳转到登录页面。项目使用thinkphp框架,版本是3.1.3实现:
思路:
用户在登录的时候,在session中记录用户的登录时间,在common.php文件中创建CheckAction类,继承自Action类,所有登录后的控制器均使其继承CheckAction,在CheckAction构造函数中添加检查和更新登录时间,若超时则跳转到登录页面的处理逻辑。编码实现:
登录验证账号密码时,用户身份验证成功后记录登录时间:function userAgreed($username, $password){
$db = M('user');
$condition['email'] = $username;
$condition['password'] = $password;
$result = $db->where($condition)->find();
//dump($result);
if(isset($result)){
session('logintime', time());
return true;
}else{
return false;
}
}
CheckAction类编码:
Class CheckAction extends Action{
public function __construct(){
parent::__construct();
$this->checkSession();
}
public function checkSession(){
//set out time 1 minutes
$nowtime = time();
$s_time = session('logintime');
if(($nowtime - $s_time) > 10){
session('logintime', null);
$this->error('当前用户未登录或登录超时,请重新登录', '/thinkphp/index.php');
}else{
session('logintime', $nowtime);
}
}
}
系统除登录页面控制器外,其他控制器均继承自CheckAction:
class MainAction extends CheckAction
class OrderAction extends CheckAction
效果:
设置超时时间为10秒钟,登录成功后等待10秒,再点击页面其他菜单,页面提示登录超时,并跳转到登录页面:相关文章推荐
- php学习笔记(十九)mysqli扩展库的多语句查询、事物处理以及字符集设置
- php学习笔记(十六)登录页面实例-输入检查和粘性表单
- PHP-会员登录与注册例子解析-学习笔记
- php学习笔记之登录后有保存Cookie免登录
- Hadoop学习笔记-003-CentOS_6.5_64_设置ssh免密码登录
- PHP学习笔记【20】--PHP禁用缓存设置,自动刷新跳转
- Hadoop学习笔记-003-CentOS_6.5_64_设置ssh免密码登录
- PHP验证用户登录例子-学习笔记
- php学习笔记:登录练习
- sqlserver -- 学习笔记(三)解决php连接sqlserver2005视图时显示“异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项”的问题
- PHP学习笔记:使用session来存储用户的登录信息
- php学习笔记(09)—— 位运算与PHP错误报告设置
- Hadoop学习笔记-003-CentOS_6.5_64_设置ssh免密码登录
- PHP高级应用学习笔记之——利用header()函数设置浏览器缓存
- 学习笔记之php页面ajax登录异步刷新
- php学习笔记-1.登录页面的学习
- PHP 学习笔记 账号登录系统
- PHP设置会话(Session)超时过期时间实现登录时间限制
- MOSS2007-学习笔记-备忘录-单点登录设置(2)
- Php中设置Session超时时间登录时间限制