我正在使用带有 CodeIgniter 框架的原生 PHP 会话 ($_SESSION)。
我有一个“登录”控制器加载视图,用户输入登录名和密码。用户提交登录表单后,会调用“登录”控制器的 authenticate() 方法。如果一切正常,我将一些数据添加到 $_SESSION 数组,然后我将用户重定向到“组织”控制器 myOrganisation() 方法。我在 Login/login() 、 Login/authenticate() 和 Organisation/myOrganisation() 方法中调用 session_start() ,但仍然没有通过会话,因为在 myOrganisation() 方法中会话是新的。
我通过创建 2 个测试 php 页面来测试我的 cookie 功能,我只是在其中回显会话 ID。它完美地工作。也许我没有把 session_start() 放在它需要的所有地方?(我把它们放在所有控制器方法中)。
登录控制器:
class Login extends CI_Controller {
public function index() {
session_start();
$this->load->view("Login/index", $data);
public function authenticate() {
session_start();
$_SESSION['login'] = $login; // everything is alright, redirect
header("location: ".base_url()."Organisations/MyOrganisation");
组织负责人:
public function MyOrganisation() {
session_start(); // here session is a new one, not passed
if(isset($_SESSION['login'])) {