ThinkPHP5.0下,利用Cookie和Session来存储用户信息

利用tp5框架封装好的Cookie类和Session类。若发现过期时间没有生效,可以试试清除缓存。

登录页面Login.php

<?php/** * Created by PhpStorm. * User: zjl * Date: 2018/11/1 * Time: 15:21 */namespace app\admin\controller;

use think\Controller;use think\Request;use think\Session;use think\Cookie;

class Login extends Controller{    public function index(){        return $this->fetch(‘index‘);    }    public function login()    {        $request = Request::instance();        //判断post过来的数据是否被提交过来        if($request->isPost()){            $data = $request->param();            //对提交的数据进行判断            if(empty($data[‘user‘]) || empty($data[‘password‘])){                exit(json_encode(array(‘status‘=>0,‘message‘=>‘用户名或密码不能为空‘)));            }            //对数据进行过滤            $username = addslashes(trim(stripslashes($data[‘user‘])));            $password = addslashes(trim(stripslashes($data[‘password‘])));            $config_session = [                ‘prefix‘            => ‘admin‘,     // session 名称前缀                ‘expire‘            => 7200,        // session 过期时间                ‘use_trans_sid‘     =>  1,          //跨页传递                ‘use_only_cookies‘  =>  0,          //是否只开启基于cookies的session的会话方式            ];            $session = new Session();            $session->init($config_session);            $session->prefix();            $session->set(‘user‘,$username,‘admin‘);            $session->set(‘password‘,$password,‘admin‘);            $config_cookie = [                ‘prefix‘    => ‘admin‘, // cookie 名称前缀                ‘expire‘    => 1800, // cookie 保存时间                ‘path‘      => ‘/‘, // cookie 保存路径                ‘domain‘    => ‘‘, // cookie 有效域名                ‘secure‘    => false, //  cookie 启用安全传输                ‘httponly‘  => false, // httponly 设置                ‘setcookie‘ => true, // 是否使用 setcookie            ];            $cookie = new Cookie();            $cookie->init($config_cookie);            $cookie->prefix();            $cookie->set("sessionId",session_id());            $this->redirect(‘/index.php/admin/Index/index‘);        }    }}

主页面Index.php
<?php/** * Created by PhpStorm. * User: zjl * Date: 2018/11/1 * Time: 15:21 */namespace app\admin\controller;

use think\Controller;use think\Request;use think\Session;use think\Cookie;

class Index extends Controller{    public function index(){        if(Cookie::has("sessionId",‘admin‘)){            if(Session::has(‘user‘,‘admin‘) && Session::has(‘password‘,‘admin‘)){                $user = Session::get(‘user‘,‘admin‘);                $password = Session::get(‘password‘,‘admin‘);                $this->assign(‘user‘,$user);                $this->assign(‘password‘,$password);                return $this->fetch(‘index‘);            }else{                //‘session过期了‘;                $this->redirect(‘/index.php/admin/Login/index‘);

}        }else{            //‘cookie过期了‘;            $this->redirect(‘/index.php/admin/Login/index‘);        }    }    public function logout()    {        Session::flush();        Cookie::clear(‘admin‘);        $this->redirect(‘admin/Login/index‘);

}}

原文地址:https://www.cnblogs.com/fish-minuet/p/9903068.html

时间: 2024-10-29 19:11:52

ThinkPHP5.0下,利用Cookie和Session来存储用户信息的相关文章

获得session中的用户信息

由于每个系统都有往session中放入用户信息以及把用户信息取出来的模块,而且在session中取出用户信息的地方非常之多,所以有必要把session中对用户的操作封装成为一个工具类,以便在以后的使用过程中更加的方便,以及使得项目更加具有模块化: Class UserUtil{ public static AdminUser getUser(){ AdminUser adminUser = null; if(SecurityUtils.getSubject().getSession().getA

基于javaWeb阶段下的Cookie和Session总结

1. 会话技术   就是用户在使用浏览器浏览界面的时候,去访问多个页面后一次性关闭浏览器,这个过程叫会话,学习会话技术就是在客户端与服务器进行交互的时候为了能更好的保存数据.在java中会话技术只有Cookie和Session2. Cookie技术   Cookie是客户端技术,程序把每个用户的数据以cookie的形式保存到各自浏览器中.当用户使用浏览器再次访问服务器中的web资源的时候,就会带着各自的数据过去.这样,web资源处理的就是用户各自的数据了.3. Cookie的分类   Cooki

向后台提交数据:利用cookie加session提交更多数据,

个人逻辑,可能考虑不全面,各位看到后留言,我修改啊 实现效果:浏览器第一次访问提交用户名,后台验证通过,生成随机字符串,和用户名组成字典,保存到服务器,把随机字符串设置成cookie发给浏览器,同一个浏览器第二次来访问这个服务器上的其他页面时候,获取携带的cookie的随机字符串判断在字典,把用户信息前台展示否则跳到其他页面或提示浏览器cookie没设置 代码如下: #!/usr/bin/env python #-*- coding:utf-8 -*- import tornado.web im

PHP - cookie和session存储用户信息

<?php session_start(); //假设用户登录成功获得了以下用户数据 $userinfo = array( 'uid' => 10000, 'name' => 'spark', 'email' => '[email protected]', 'sex' => 'man', 'age' => '18' ); header("content-type:text/html; charset=utf-8"); /* 将用户信息保存到sessi

使用session来存储用户的登录信息

对存在cookie端数据进行加密处理,具体代码如下: <?php session_start(); //假设用户登录成功获得了以下用户数据 $userinfo = array( 'uid' => 10000, 'name' => 'spark', 'email' => '[email protected]', 'sex' => 'man', 'age' => '18' ); header("content-type:text/html; charset=utf

PHP学习笔记:使用session来存储用户的登录信息

session可以用来存储多种类型的数据,因此具有很多的用途,常用来存储用户的登录信息,购物车数据,或者一些临时使用的暂存数据等. 用户在登录成功以后,通常可以将用户的信息存储在session中,一般的会单独的将一些重要的字段单独存储,然后所有的用户信息独立存储. $_SESSION['uid'] = $userinfo['uid']; $_SESSION['userinfo'] = $userinfo; 一般来说,登录信息既可以存储在sessioin中,也可以存储在cookie中,他们之间的差

利用 Scrapy 爬取知乎用户信息

思路:通过获取知乎某个大V的关注列表和被关注列表,查看该大V和其关注用户和被关注用户的详细信息,然后通过层层递归调用,实现获取关注用户和被关注用户的关注列表和被关注列表,最终实现获取大量用户信息. 一.新建一个scrapy项目 scrapy startproject zhihuuser 移动到新建目录下: cd zhihuuser 新建spider项目: scrapy genspider zhihu 二.这里以爬取知乎大V轮子哥的用户信息来实现爬取知乎大量用户信息. a) 定义 spdier.p

laravel下的cookie、session、缓存和提交信息处理

$value = Cookie::get('name'); $response = Response::make('world'); $response->withcookie(Cookie::make('name','value',$minutes)); $cookie = Cookie::forever('name','value'); //Session Input::flash(); //将用户提交的信息存入session Input::flashonly(); Input::flash

Linux下利用glibc2库和crypt()函数生成用户密码

基本知识 Linux用户的密码由函数crypt()实现.crypt()是一个密码加密函数(将密码加密,明文变成密文),该函数基于数据加密标准(DES,Data Encryption Standard )算法以及基于DES的其他变种算法,该函数不依赖于计算机硬件实现数据加密.DES算法仅适合于加密字符串,也就是用于生成密码.尽管密码的生成有很多种方法. (1)关于salt salt是一种混淆key的一段范围在abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS