Php 无法访问codeigniter控制器中的$\会话变量

Php 无法访问codeigniter控制器中的$\会话变量,php,codeigniter,session,Php,Codeigniter,Session,我有一个控制器,用于验证用户,如下所示: function index() { if($this->input->post('username')) { $username=$this->input->post('username'); $password=$this->input->post('password'); $this->mstudents->verifyUser($use

我有一个控制器,用于验证用户,如下所示:

function index()
{
    if($this->input->post('username'))
    {
        $username=$this->input->post('username');
        $password=$this->input->post('password');
        $this->mstudents->verifyUser($username,$password);
        if(@$_SESSION['sutdentUsername']!=""){
        echo "success";
        }
        else
        {
            echo "error";
        }
    }
    else
    {
        echo "error";
    }

}
$.post('<?PHP echo base_url();?>account/login/',{username:$("#username").val(),password:$("#password").val()},function(data){

        $("#loginButton").button('reset');
        if(data=="success")
        {
            window.location="<?PHP echo base_url();?>account/dashboard";
        }
        });
此函数由ajax在视图中调用,如下所示:

function index()
{
    if($this->input->post('username'))
    {
        $username=$this->input->post('username');
        $password=$this->input->post('password');
        $this->mstudents->verifyUser($username,$password);
        if(@$_SESSION['sutdentUsername']!=""){
        echo "success";
        }
        else
        {
            echo "error";
        }
    }
    else
    {
        echo "error";
    }

}
$.post('<?PHP echo base_url();?>account/login/',{username:$("#username").val(),password:$("#password").val()},function(data){

        $("#loginButton").button('reset');
        if(data=="success")
        {
            window.location="<?PHP echo base_url();?>account/dashboard";
        }
        });
我在所有控制器的构造函数中都有这样的代码:

function __construct()
{
    parent::__construct();
    session_start();
    print_r($_SESSION);
控制器的目录结构如下所示:

控制器: 账户 -仪表板 -登录
其他控制器在这里…

根据我的理解,您可能应该尝试以下方法:

根据您是否自动加载会话库,我们需要包括:

$this->load->library('session');
那么您应该能够使用:

$this->session->set_userdata('some_name', 'some_value');

$session_id = $this->session->userdata('some_name');

我希望这也是您所需要的。

根据我的理解,您可能应该尝试一下:

根据您是否自动加载会话库,我们需要包括:

$this->load->library('session');
那么您应该能够使用:

$this->session->set_userdata('some_name', 'some_value');

$session_id = $this->session->userdata('some_name');

我希望这与您需要的相同。

因为您使用的是本机php会话,所以需要首先使用
session\u start()启动会话
将它放在
index.php
中,或者您可以将它放在
\uu构造()

中,因为您使用的是本机php会话,您需要首先使用
会话\u start()启动会话
将其放入
index.php
或您可以将其放入
\u构造()

您是否尝试使用codeigniter中的会话库?$Q->num\u rows()的输出是什么?输出是一。事实上,它实际上返回“success”,这意味着会话变量已成功设置。我忘了提到dashboard controller位于一个名为accounts的单独目录中。@mamdouhalramadan我认为原生PHP会话是安全的,因为codeigniter会话倾向于将数据保存在加密的Cookie中。不,一点也不安全。除了加密的cookie之外,他们还使用相同的PHP提供的会话。强烈建议使用codeigniter中的会话库。您是否尝试过使用codeigniter中的会话库?$Q->num_rows()的输出是什么?输出是一个。事实上,它实际上返回“success”,这意味着会话变量已成功设置。我忘了提到dashboard controller位于一个名为accounts的单独目录中。@mamdouhalramadan我认为原生PHP会话是安全的,因为codeigniter会话倾向于将数据保存在加密的Cookie中。不,一点也不安全。除了加密的cookie之外,他们还使用相同的PHP提供的会话。在codeigniter中,强烈建议使用。