gpt4 book ai didi

php - 消息 : ini_set(): A session is active. 您此时无法更改 session 模块的 ini 设置

转载 作者:可可西里 更新时间:2023-10-31 23:07:19 24 4
gpt4 key购买 nike

我用 codeigniter 创建了一个登录页面,但我收到了 php 消息。

消息:ini_set(): session 处于事件状态。您此时无法更改 session 模块的 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>

Controller (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');
}
}
}
?>

Controller (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');
}

模型(User.php)

<?php 

/** *扩展 MY_Model 的用户登录类 * */

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;
}
}
}
?>

最佳答案

admin.php

中不需要这一行
session_start(); //need to call PHP's session object to access it though it

当您加载 session 库时,它的构造函数会为您做这件事。

关于php - 消息 : ini_set(): A session is active. 您此时无法更改 session 模块的 ini 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32814895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com