Kyl*_*ano 2 php session codeigniter
我想在CodeIgniter 3中获得帮助。每次登录并重定向到索引页面时,会话都会丢失。
这是我的代码:
控制器:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Secretariat extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->helper(array('form', 'url'));
$this->load->model('SecretariatModel');
$this->load->model('IndiRegModel');
$this->load->model('RoomModel');
$this->load->model('BuildingModel');
$this->load->model('BilletModel');
$this->load->model('BatchRegModel');
$this->load->library('form_validation');
$this->load->library('session');
}
public function secretariatLogin(){
if ($this->session->isSecretariat){
redirect('secretariat/index', $data);
} else{
$data['title'] = 'PACSA - Philippine Association of Campus Student Adviser';
$this->load->view('include/toppage', $data);
$this->load->view('include/defaultnavbar', $data);
$this->load->view('pacsa/slider');
$this->load->view('secretariat/secretariatLogin', $data);
$this->load->view('include/bottompage');
}
}
public function signin(){
$secretariat = array(
'sec_email' => $this->input->post('sec_email'),
'sec_password' => sha1($this->input->post('sec_password'))
);
$user = $this->SecretariatModel->getSecretariat($secretariat);
//print_r($user->name);die();
if(!$user == null){
$newdata = array(
'sec_id' => $user->sec_id,
'sec_name' => $user->sec_name,
'sec_lastname' => $user->sec_lastname,
'sec_email' => $user->sec_email,
'sec_password' => $user->sec_password,
'sec_status' => $user->sec_status,
'sec_address' => $user->sec_address,
'logged_in' => TRUE,
'isSecretariat' => TRUE
);
$this->session->set_userdata($newdata);
redirect('secretariat/index');
} else {
$data['title'] = 'PACSA - Philippine Association of Campus Student Adviser';
$data['message'] = 'Invalid email or password';
$this->load->view('include/toppage', $data);
$this->load->view('include/defaultnavbar', $data);
$this->load->view('pacsa/slider');
$this->load->view('secretariat/secretariatLogin', $data);
$this->load->view('include/bottompage');
}
}
public function index(){
$data['title'] = 'PACSA - Philippine Association of Campus Student Adviser';
$id = $this->session->sec_id;
var_dump($id);
echo die();
$this->load->view('include/toppage', $data);
$this->load->view('include/secretariatnavbar', $data);
$this->load->view('pacsa/slider');
$this->load->view('secretariat/index', $data);
$this->load->view('include/bottompage');
}
}
Run Code Online (Sandbox Code Playgroud)
因此,在重定向到索引页面之后,我想验证是否涉及会话。我试图回显用户名和用户名,但得到一个空值。
小智 20
去
系统/库/会话/session.php
在第 281 行并替换
ini_set('session.name', $params['cookie_name']);
Run Code Online (Sandbox Code Playgroud)
经过
ini_set('session.id', $params['cookie_name']);
Run Code Online (Sandbox Code Playgroud)
此问题通常在 PHP 更新版本升级到 7.3 + 时出现
小智 9
在此链接中:
https://php.developreference.com/article/23484402/Codeigniter+session+data+lost+after+redirect
如果您在 CI 3.x 中工作并且刚刚将您的服务器 php 版本升级到 php 7.x 转到system/libraries/Session/session.php第 281 行并替换ini_set('session.name', $params['cookie_name']);为ini_set('session.id', $params['cookie_name']);
| 归档时间: |
|
| 查看次数: |
1756 次 |
| 最近记录: |