php – 消息:ini_set():会话处于活动状态.您目前无法更改会话
发布时间:2020-12-13 16:24:43 所属栏目:PHP教程 来源:网络整理
导读:我用codeigniter创建了一个登录页面,但是我收到了php消息. 消息:ini_set():会话处于活动状态.您目前无法更改会话模块的ini设置 怎么解决这个问题? 查看(login.php) !DOCTYPE htmlhtml lang="en"headmeta charset="UTF-8"titleAdmin Login/titlelink rel="
我用codeigniter创建了一个登录页面,但是我收到了php消息.
消息:ini_set():会话处于活动状态.您目前无法更改会话模块的ini设置 怎么解决这个问题? 查看(login.php) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Admin Login</title> <link rel="stylesheet" href="../css/normalize.css"> <link rel="stylesheet" href="../css/admin-style.css"> </head> <body> <?php echo form_open('Verify_login',['id'=>'loginForm','name'=>'loginForm','method'=>'post']) ?> <div class="login"> <div class="log-box"> <h3>Login</h3> <div > <input id="username" name="username" placeholder="User Name" value="" type="text" > <?php echo form_error('username'); ?> <input id="Password" name="password" placeholder="Password" required type="password"> <?php echo form_error('password'); ?> <div class="remember-me"> <input id="checkBox" type="checkbox"> <label for="checkBox">Remember Me</label> </div> <button class="login-button" name="loginButton">Login</button> </div> </div> </div> </form> </body> </html> 控制器(Verify_login.php) <?php defined('BASEPATH') OR exit('No direct script access aloowed'); class Verify_login extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('User'); $this->load->helper('url'); $this->load->helper('security'); $this->load->library('form_validation'); $this->load->library('session'); } public function index() { $this->form_validation->set_rules('username','Username','trim|required'); $this->form_validation->set_rules('password','Password','trim|required|callback_check_database'); if ($this->form_validation->run() == FALSE) { // if validation failed load the view $this->load->view('admin/login'); } else{ $this->check_database($username,$password); redirect('dashboard','refresh'); } } public function check_database($password) { $username = $this->input->post('username'); //query tha database $result = $this->User->login($username,$password); if ($result) { $sess_array = []; foreach ($result as $row) { $sess_array = [ 'id'=>$row->id,'username'=>$row->name ]; $this->session->set_userdata('logged_in',$sess_array); } return TRUE; } else{ $this->form_validation->set_message('check_database','invalid username and password'); } } } ?> 控制器(admin.php的) session_start(); //need to call PHP's session object to access it though it class Admin extends CI_Controller { public $data; public function __construct() { parent::__construct(); $this->load->helper('url'); $this->load->helper('form'); $this->load->helper('url'); $this->load->library('form_validation'); $this->load->helper('security'); //load user model $this->load->model('User'); } public function index() { // $this->load->view('admin/index'); if ($this->session->userdata('logged_in')) { $session_data = $this->session->userdata('logged_in'); $data['username'] = $session_data['name']; $this->load->view('admin/dashboard',$data); } else{ //if no session redirect to login page redirect('admin','refresh'); // redirect('login'); } } public function logout() { $this->session->unset_userdata('logged_in'); session_destroy(); redirect('home','refresh'); } model(User.php) <?php / ** defined('BASEPATH') OR exit('no direct script allowed'); class User extends CI_Model { protected $table = 'users'; public function __construct() { $this->load->database(); } public function login($username,$password) { var_dump($username); var_dump($password); $this->db->select(['id','name','password']); $this->db->from($this->table); // $this->db->where('name',$username); // $this->db->where('password',$password); $this->db->limit(1); $query = $this->db->get(); if ($query->num_rows() == 1) { return $query->result(); } else{ return false; } } } ?>
我认为你是框架概念和OOP的新手.
你在admin.php中不需要这一行 session_start(); //need to call PHP's session object to access it though it 当您加载会话库时,它的构造函数会为您执行这些操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |