为了账号安全,请及时绑定邮箱和手机立即绑定

登录会话不起作用 codeigniter 3.1.11 、 php 7.4

登录会话不起作用 codeigniter 3.1.11 、 php 7.4

PHP
LEATH 2023-07-15 18:32:21
我正在尝试创建一个简单的登录会话,但我被重定向到登录页面,这是我的 Login.php 控制器。> <?php class Login extends CI_Controller {  function __construct()  {>       parent::__construct();      if($this->session->userdata('admin'))>           redirect('admin/dashboard');     }   function index()     {>       $this->load->view('admin/login', $data);     }   function verify()   {>       //username:admin password:123456        $this->load->model('admin');    >   $check = $this->admin->validate();       if($check)      { >           $this->session->set_userdata('admin','1');>           redirect('admin/dashboard');         }       else        {>           redirect('admin');      }    }>   > > > }这是我的 Dashboard.php 控制器,如果用户名和密码正确,管理人员会还原该控制器<?php    class Dashboard extends CI_Controller    {        function __construct()        {            parent::__construct();            if(!$this->session->userdata('admin'))                redirect('admin');        }        function index()        {            $this->load->view('admin/dashboard');        }        function logout()        {            $this->session->sess_destroy();            redirect('admin');        }    }这是database.php   $active_group = 'default';               $query_builder = TRUE;                              $db['default'] = array(                   'dsn'   => '',                   'hostname' => 'localhost',                   'username' => 'root',                   'password' => '',                   'database' => 'ASGB-test',                   'dbdriver' => 'mysqli',                   'dbprefix' => '',                   'pconnect' => FALSE,               )              ;这是我的 autoload.php,我在这里激活数据库和会话库这是routes.php,欢迎控制器基本上是原始的codeigniter欢迎视图,我还定义了管理路由我确信我输入了正确的密码和用户名,但它只是将我重定向到登录页面
查看完整描述

3 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

你必须使用

session_start();

在需要会话变量的每个页面的 php 脚本的最开始处。


查看完整回答
反对 回复 2023-07-15
?
撒科打诨

TA贡献1934条经验 获得超2个赞

解决了,我实际上错过了拼写“用户名”和“密码”,通过解决我成功登录的问题。感谢您的回答



查看完整回答
反对 回复 2023-07-15
?
繁星coding

TA贡献1797条经验 获得超4个赞

首先,我不知道$data在Login 控制器的index()中做什么,以及validate()在模型 admin中做什么,那么我认为最好放置登录和注销功能在登录控制器中如下:


<?php 

class Login extends CI_Controller{ 

    

    function __construct(){      

        parent::__construct();

    }   


    function index() {

        $this->load->view('admin/login'); 

    }


    public function log_in()

    {

        $this->load->model('admin');


        $this->form_validation->set_rules('username', 'Username', 'trim|required', array('required' => 'Username required'));

        $this->form_validation->set_rules('password', 'Password', 'trim|required', array('required' => 'Password required'));


        //username:admin password:123456

        if ($this->form_validation->run() !== false) {

            $username = $this->input->post('username');

            $password = $this->input->post('password');


            $check = $this->admin->validate($username, $password);


            if ($check != false) {

                $this->session->set_userdata('admin','1');

                redirect('Dashboard');

            } else {

                redirect('Login');

            }

        }

        $this->load->view('admin/login'); 

    }

    

    public function log_out()

    {

        $this->session->sess_destroy();

        redirect('Login'); 

    }

}

?>

那么你的仪表板控制器如下:


<?php

    class Dashboard extends CI_Controller

    {

        function __construct()

        {

            parent::__construct();

            if(!$this->session->userdata('admin'))

                redirect('Login');

        }

        function index()

        {

            $this->load->view('admin/dashboard');

        }

    }

?>

和管理模型如下:


<?php

class Admin extends CI_Model

{

    function validate($username, $password)

    {

        $this->db->select('*')

            ->from('admins')

            ->where('username', $username)

            ->where('password', md5($password));

        $query = $this->db->get();

    

        return $query->result();

    }

}

?>


查看完整回答
反对 回复 2023-07-15
  • 3 回答
  • 0 关注
  • 160 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信