codeigniter ajax请求与会话

时间:2016-09-12 06:27:55

标签: php jquery ajax codeigniter session

无法通过ajax请求获取会话值

这是我的ajax req

$.post(url, payload, 
    function(returnedData){
        console.log(returnedData); //does not print session values it seems session has restarted
         var jsonData = JSON.parse(returnedData);

         $('#cart').empty().append(jsonData.data);
});

在console.log中输出

    Array
(
    [__ci_last_regenerate] => 1473660791
)

分配会话变量

public function test($id=null)
{
    $_SESSION['tot']=1;
}

不使用ajax进行测试

public function addToCart($id=null) //note that this is also the control for my ajax req
{            
        print_r($_SESSION);
        die('0');
}
public function test1()
{
    print_r($_SESSION); // it prints fine
}

输出

Array ( [__ci_last_regenerate] => 1473660731 [tot] => 1 )
  

我自动加载了我的会话库。   CI表示,只要它存在,使用会话魔法或php访问会话变量无关紧要。

2 个答案:

答案 0 :(得分:0)

你好,请你使用默认的codeignitor会话,请提一下你提出的ajax请求和ajax请求的php代码的网址

$this->session->set_userdata('tot',1);

然后像这样打印会话数组

echo "<pre">;print_r($this->session->userdata('tot'));

答案 1 :(得分:0)

您的代码应为

 public function test($id=null)
    {
        $this->session->set_userdata('tot', 1);
        //instead $_SESSION['tot']=1;
    }
    public function addToCart($id=null) //note that this is also the control for my ajax req
    {            
            $session_id = $this->session->userdata('session_id');
echo $session_id;
    }
    public function test1()
    {
        //print_r($_SESSION); // it prints fine
$session_id = $this->session->userdata('session_id');
echo $session_id;
    }
  

并确保加载会话库($ this-&gt; load-&gt; library(&#39; session&#39;);)