资讯专栏INFORMATION COLUMN

跟着阿大学CodeIgniter (四)——登录验证

xiaowugui666 / 2398人阅读

摘要:镇文图什么是是用于保持状态的基于服务器的方法。可以简单理解为服务器给用户生成了一个通行证。建立文件意味着我们待会要用到控制器的函数退出调用控制器的函数编写控制器类接下来,我们要一步步往这个类里面加功能。

镇文图

什么是Session

Session是用于保持状态的基于Web服务器的方法。可以简单理解为服务器给用户生成了一个通行证。

登录的过程

1.提交用户输入的用户名和密码
2.检查是否存在此用户名
3.如果存在,检查密码是否正确
4.如果正确,生成session

将要用到的几个关键语句

1.加载session类

$this -> load -> library("sesion");

2.创建session

$this -> session -> set_userdata($array);

3.查看session

$this -> session -> userdata(session名);

4.删除session

$this -> session -> unset_userdata(session名);
Here we go

1.先修改配置
找到application/config/config.php,把$config["encryption_key"]赋与一个密钥值,随意起。
2.建立views/login.php文件

name: password:
退出

3.编写控制器类

 load -> view("login");
    }
}

4.接下来,我们要一步步往这个类里面加功能。首先是检验用户提交的信息正误/创建session

function check() {
    $this -> load -> model("user_test");
    //user_test 是上一篇文章(链接见文末)中创建的User_test模型
    $user = $this -> user_test -> u_select($_POST["u_name"]);
    //调用User_test模型的u_select方法查询提交的用户名的信息
    if ($user) {
    // 如果此用户存在
        if ($user[0] -> upw == $_POST["u_pw"]) {
        // 如果提交的密码与正确密码一致,则创建session
            echo "pw right";
            $this -> load -> library("session");
            // 载入CI的session库
            $arr = array("s_id" => $user[0] -> uid);
            // 把用户ID存入数组
            $this -> session -> set_userdata($arr);
            设置session
        } else {
            echo "pw wrong";
        }
    } else {
        echo "name wrong";
    }
}

5.判断是否登录

function is_login() {
    $this -> load -> library("session");
    // 载入CI的session库
    if ($this -> session -> userdata("s_id")) {
    // 如果能取得这个ID的session,就意味着处于登录状态
        echo "logined";
    } else {
        echo "no login";
    }
}

6.退出登录

function logout() {
    $this -> load -> library("session");
    // 载入CI的session库
    $this -> session -> unset_userdata("s_id");
    // 删除此ID是session
}

7.控制器最终代码

 load -> view("login");
    }

    function check() {
        $this -> load -> model("user_test");
        $user = $this -> user_test -> u_select($_POST["u_name"]);
        // var_dump($user);
        // $user[0] -> upw
        if ($user) {
            if ($user[0] -> upw == $_POST["u_pw"]) {
                echo "pw right";
                $this -> load -> library("session");
                $arr = array("s_id" => $user[0] -> uid);
                $this -> session -> set_userdata($arr);
            } else {
                echo "pw wrong";
            }
        } else {
            echo "name wrong";
        }
    }

    function is_login() {
        $this -> load -> library("session");
        if ($this -> session -> userdata("s_id")) {
            echo "logined";
        } else {
            echo "no login";
        }
    }

    function logout() {
        $this -> load -> library("session");
        $this -> session -> unset_userdata("s_id");
    }
}

8.测试
现在可以访问localhost/ci/index.php/login 进行测试了

本系列文章

跟着阿大学CodeIgniter (一)——了解MVC
跟着阿大学CodeIgniter (二)—— 文件上传
跟着阿大学CodeIgniter (三)—— 操作数据库

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20677.html

相关文章

  • 跟着阿大CodeIgniter (一)——了解MVC

    摘要:它提供一套丰富的标准库以及简单的接口和逻辑结构,其目的是使开发人员更快速地进行项目开发。文件放在里类名首字母必须大写,并继承的类访问的路径为项目名入口控制器名控制器的方法参数。 有的没的 showImg(http://segmentfault.com/img/bVbOml);阿大镇文(-_-メ)~ 阿大你太黑了,回去洗把脸看看有没有救~ 学习背景 CI是一个比较流行的PHP MV...

    wenzi 评论0 收藏0
  • 跟着阿大CodeIgniter (二)—— 文件上传

    摘要:文件名中的扩展名也必须是允许的文件类型。注意通常也有这项限制,可以在文件中指定。上传文件的高度最大值像素为单位。 showImg(http://segmentfault.com/img/bVbPbI); 阿大说,为做一张配图,还要换系统,好苦13 ╮(╯-╰)╭ 原生php上传 在使用CI之前,我们来看看用原生代码是如何上传的,做个对比,就知道CI有多么方便~ 首先创建一个视图c...

    crelaber 评论0 收藏0
  • 跟着阿大CodeIgniter (三)—— 操作数据库

    摘要:提供了强大的数据库函数类,源码是文件。配置数据库文件到进行必要的配置,把数据库名密码编码等填写好。本系列文章跟着阿大学一了解跟着阿大学二文件上传跟着阿大学三操作数据库 碎碎念 过年还来SegmentFault学习的都是好少年~ showImg(http://segmentfault.com/img/bVbQOE); 知识重点 涉及到数据库,就是比较复杂的内容了,所以本文略长,但...

    eechen 评论0 收藏0
  • 腾讯云Codeigniter小记

    摘要:前段时间为了抓取网络文本数据,申请了腾讯云学生机,用的框架弄了一段时间。这个用户既是不可登录的操作系统用户,也是数据库用户。设置数据库用户密码为了能够让和数据库相连接,需要设置数据库用户密码。 打读研之后,更加关注算法的学习,Web开发这一块便落下了,平时也通过微信公众号关注了些,常常感慨,技术的更迭真是日新月异。 前段时间为了抓取网络文本数据,申请了腾讯云学生机,用Python的Sc...

    Ocean 评论0 收藏0
  • 腾讯云Codeigniter小记

    摘要:前段时间为了抓取网络文本数据,申请了腾讯云学生机,用的框架弄了一段时间。这个用户既是不可登录的操作系统用户,也是数据库用户。设置数据库用户密码为了能够让和数据库相连接,需要设置数据库用户密码。 打读研之后,更加关注算法的学习,Web开发这一块便落下了,平时也通过微信公众号关注了些,常常感慨,技术的更迭真是日新月异。 前段时间为了抓取网络文本数据,申请了腾讯云学生机,用Python的Sc...

    alphahans 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<