记忆登录

记忆登录

登录一次成功后,无需多次登录,有效期为三个月
最后修改时间:09月02日 23:04,查看次数:47

MD5值:AB99FC6A129F74111B8DFCD62328AFD3

上传插件

方法一

直接通过后台的【本地后台上传插件】,将下载过来的ZIP包直接上传解压。

优点:操作便捷!

缺点:部分主机会解压失败

方法二

下载插件后,本地解压,并通过FTP将 文件夹 上传到 plugins 目录下。

优点:安装比较顺利。

缺点:可能需要你懂点网建知识,会一点点小编程

安装插件

上传成功后的插件会在【未安装插件】列表中,请点击安装

图片

安装后,会显示到【已安装列表】,这时候插件是不可用状态,请点击状态,变成【绿标】即表示插件安装成功

图片

参数调整

您在安装过程中,因为一些原因,没有配置好参数,可以在这里进行配置

图片

快捷栏目管理

系统支持插件的一些配置信息自定义到:左侧菜单/全局区/内容区,这大块上,以方便维护人员快速进入

图片

图片



内容介绍

登录一次成功后,无需多次登录,有效期为三个月

图片

代码如下:

<?php
/*****************************************************************************************
    文件: plugins/autologin/www.php
    备注: 自动登录<前台应用>
    版本: 4.x
    网站: www.phpok.com
    作者: phpok.com
    时间: 2016年01月05日 13时36分
*****************************************************************************************/
class www_autologin extends phpok_plugin
{
    public $me;
    private $expire_time = 30;
    public function __construct()
    {
        parent::plugin();
        $this->me = $this->_info();
        if($this->me['param'] && $this->me['param']['expire_time']){
            $this->expire_time = $this->me['param']['expire_time'];
        }
    }
    //全局运行插件,在执行当前方法运行前,调整参数
    public function phpok_before()
    {
        //编写代码;
    }
    //全局运行插件,在执行当前方法运行后,数据未输出前
    public function phpok_after()
    {
        //编写代码;
        $timeout = $this->time + $this->expire_time * 24 * 60 * 60;
        if($_SESSION['user_id']){
            setcookie('user_cookie_time',$timeout,$timeout,'/');
            $cookie_id = $_COOKIE['user_cookie_id'];
            if(!$cookie_id){
                $rs = $this->model('user')->get_one($_SESSION['user_id']);
                $chkcode = md5($rs['id'].'-'.$rs['user'].'-'.$rs['pass']);
                $cookie_id = $rs['id'].'-'.$chkcode;
            }
            setcookie('user_cookie_id',$cookie_id,$timeout,'/');
            setcookie('user_cookie_time',$timeout,$timeout,'/');
            return true;
        }
        $cookie_id = $_COOKIE['user_cookie_id'];
        $cookie_time = $_COOKIE['user_cookie_time'];
        if(!$cookie_id || $cookie_time <= $this->time){
            return false;
        }
        $tmp = explode("-",$cookie_id);
        $user = array('id'=>$tmp[0],'code'=>$tmp[1]);
        if(!$user['id'] || !$user['code']){
            return false;
        }
        $rs = $this->model('user')->get_one($user['id']);
        if(!$rs || !$rs['status'] || $rs['status'] != '1'){
            return false;
        }
        //二次安全验证,防止非法用户猜解cookie信息
        $chkcode = md5($rs['id'].'-'.$rs['user'].'-'.$rs['pass']);
        if($user['code'] != $chkcode){
            return false;
        }
        $_SESSION["user_id"] = $rs['id'];
        $_SESSION["user_gid"] = $rs['group_id'];
        $_SESSION["user_name"] = $rs["user"];
        setcookie('user_cookie_id',$rs['id'].'-'.$chkcode,$timeout,'/');
        setcookie('user_cookie_time',$timeout,$timeout,'/');
        return true;
    }

    //退出时清除相应的Cookie
    public function ap_logout_index_before()
    {
        $timeout = $this->time + $this->expire_time * 24 * 60 * 60;
        setcookie('user_cookie_id','',$timeout,'/');
        setcookie('user_cookie_time',$this->time,$timeout,'/');
        return true;
    }
}

该插件有点时间有点久,希望还有点用处

论坛咨询