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中,强烈建议使用。