做一个 页面失效的功能

目的:
页面停止操作30分钟后,进行操作,跳回登录页面

思路:
用户登录,保存session值
公共类中写一个islive方法,判断失效
后续的每个操作方法都调用islive方法,确保进行操作,就会进行判断

control层
control.php

<?php
$Session_start();error_reporting(0);
class control extends CI_Controller(){
    parent::__construct();
    // 内部报告下载
        if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') {
            return;
        }  

        // 如果不是https,那么跳转到https
        if ($_SERVER['SERVER_PORT'] == 80) {
            redirect("https://".$_SERVER['HTTP_HOST']."/control/login");
        }

        $this->one = $this->session->userdata('userdata');        
        if($this->uri->segment(2)=='login' || $this->uri->segment(2)=='register' || $this->uri->segment(2)=='')return;
        if (!$this->one) {
            die('<script>top.window.location="/control/login";</script>');
        }
}
function login(){
    $username = $this->input->post('username');
    $password = md5(md5($username.$this->input->post('password')));

    $sql = 'select * from user where username = ?,password = ?';
    $result = $this->db->query($sql,array($username,$password))->row();

    if($result){
        $expiretime = time()+($result->sessionlivetime)*60;#在哪个时间点失效
        $this->session->set_userdata("expiretime",$expiretime);#将失效时间保存在session中
        $this->session->set_userdata (#保存用户信息在session中
        'userdata',
        array(
        'username' => $result -> username,
        'password' => $result -> passwrod,
        'userid'   => $result -> userid
        )
        )
         echo '{"title":"","message":"","url":"/control/welcome","target":"refresh"}';  
    }
}
?>

model 层
master.php

function islive($op){
    $sql = 'select * from user where userid = ?';
    $row = $row = $this->db->query($sql,array($op))->row();
    if(!$row){
        die('<script>top.window.location="/control/login";</script>');
        return false;
    }else{
        if(($this->session->userdata["expiretime"]) < time()){                 
            die('<script>top.window.location="/control/login";</script>');
        }else{
            $tt= time() + ($this->session->userdata['userdata']["sessionlivetime"])*60; 
            $this->session->set_userdata("expiretime",$tt);#修改值

        }
        return true;
    }

}

注意,在这里,修改session的值,要用set_userdata 来实现,不能用php

$this->session->userdata['userdata']['sessionlivetime'] = $tt 

来实现
control.php


function welcome(){
    $uid = $this->one['userid'];
    $this->load->model('master','master');
    $flag = $this->master->islive($uid);
    if($flag){
        $this->load->view('welcome',array('one'=>$this->one));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值