zoukankan      html  css  js  c++  java
  • thinkphp5项目--企业单车网站(四)

    thinkphp5项目--企业单车网站(四)

    项目地址

    fry404006308/BicycleEnterpriseWebsite: Bicycle Enterprise Website
    https://github.com/fry404006308/BicycleEnterpriseWebsite

    一、可以直接获取session里面的值

    要显示值的时候,比如登录的用户名,我们可以直接用session里面的值,而不一定要session->Controllor->database的方式获取值。

    关于session用法,助手函数里面很全

     1 助手函数
     2 系统也提供了助手函数session完成相同的功能,例如:
     3 // 初始化session
     4 session([
     5 'prefix' => 'module',
     6 'type' => '',
     7 'auto_start' => true,
     8 ]);
     9 // 赋值(当前作用域)
    10 session('name', 'thinkphp');
    11 // 赋值think作用域
    12 session('name', 'thinkphp', 'think');
    13 // 判断(当前作用域)是否赋值
    14 session('?name');
    15 // 取值(当前作用域)
    16 session('name');
    17 // 取值think作用域
    18 session('name', '', 'think');
    19 // 删除(当前作用域)
    20 session('name', null);
    21 // 清除session(当前作用域)
    22 session(null);
    23 // 清除think作用域
    24 session(null, 'think');

    html页面读取session的方法

    <h2><span class="profile"><span>{$Request.session.username}</span></span></h2>

    在html页面传递session的值

    <a href="{:url('admin/edit',array('id'=>$Request.session.id))}">修改密码</a>

    因为外面已经有大括号了,所以可以直接去掉大括号

    二、退出登录不能写在login控制器里面

    退出登录不能写在login控制器里面,因为我们要先登录了才能退出登录,而login控制器的话是谁都可以访问的,因为是登录啊

    所以可以把退出登录写在admin控制器里面

    三、退出登录

    1 //退出登录
    2 public function logout(){
    3     session(null);
    4     //退出登录清空session之后要成功跳转
    5     $this->success('退出系统成功','login/index');
    6 }

    四、cookie

    助手函数好用

     1 // 初始化
     2 cookie(['prefix' => 'think_', 'expire' => 3600]);
     3 // 设置
     4 cookie('name', 'value', 3600);
     5 // 获取
     6 echo cookie('name');
     7 // 删除
     8 cookie('name', null);
     9 // 清除
    10 cookie(null, 'think_');

    五、模板输出

    每个知识点的模板输出板块就好像是在视图中的使用方法一样

    如果需要在模板中输出Session数据,可以使用下面的方法:
    {$Request.session.user_name}
    也可以支持二维数组的输出
    {$Request.session.user.name}

    六、光设置cookie还不行,还得在登录登出里面使用

    设置cookie

     1 <?php
     2 namespace appadmincontroller;
     3 use thinkController;
     4 
     5 
     6 
     7 class Login extends Controller
     8 {
     9     /**
    10      * 登录
    11      * 1、获取页面传递过来的用户名和保密
    12      * 2、在数据库中查找此用户和密码
    13      * 3、如果找到数据,那就登录,否则error提示
    14      * @return [type] [description]
    15      */
    16     public function index()
    17     {
    18         //1、获取页面传递过来的用户名和保密
    19         if(request()->isPost()){
    20             $datain=input('post.');
    21             // dump($data);die;
    22             //2、在数据库中查找此用户和密码
    23             $data=db('admin')->where('username',$datain['username'])->where('password',md5($datain['password']))->find();
    24             //3、如果找到数据,那就登录,否则error提示
    25             if($data){
    26                 // dump($data);die;
    27                 //4、将登录信息写入session
    28                 session('id', $data['id']);
    29                 session('username', $data['username']);
    30                 session('password', $data['password']);
    31                 //5、设置cookie
    32                 cookie('id', $data['id'], 3600);
    33                 cookie('username', $data['username'], 3600);
    34                 cookie('password', $data['password'], 3600);
    35                 $this->success('登录成功!!',url('index/index'));
    36             }else{
    37                 $this->error('用户名或者密码错误!!');
    38             }
    39         }
    40         return view('login');
    41     }
    42 }

    初始化方法中检查是否有cookie

     1     /**
     2      * 登录之后显示正确登录的用户
     3      * 0、将登录的用户信息写入session
     4      * 1、获取登录的用户的数据
     5      * 2、将获取的数据传递到left.htm页面
     6      * @return [type] [description]
     7      */
     8     public function _initialize()
     9     {
    10         if(!session('username')){
    11             //如果cookie存在的话
    12             if(cookie('username')){
    13                 //设置session
    14                 session('id', cookie('id'));
    15                 session('username',cookie('username'));
    16                 session('password', cookie('password'));
    17                 // dump(cookie('username'));die;
    18                 return;
    19             }
    20             $this->error('您尚未登录系统','login/index');
    21         }
    22     }

    退出登录中销毁cookie

    1     //退出登录
    2     public function logout(){
    3         session(null);
    4         cookie('user', null);
    5         cookie('username', null);
    6         cookie('password', null);
    7         //退出登录清空session之后要成功跳转
    8         $this->success('退出系统成功','login/index');
    9     }
  • 相关阅读:
    探讨游戏服务器设计
    找规律 0 1 3 8 22 64
    mysql 字段对比工具
    游戏开发者网站大集合
    sizeof struct 问题
    微软智力题
    python+requests——读取二进制文件并保存在本地——一个图片作为示例
    python+requests——检查响应头是否存在
    python+requests——读取二进制文件并保存在本地——一个应用程序作为示例
    python+requests——URL的编码和解码
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/8854334.html
Copyright © 2011-2022 走看看