2
我正在使用PHP和codeigniter。我試圖在會話中設置一個變量。codeigniter中的會話值
控制器
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function __construct(){
parent::__construct();
$this->config->base_url();
$this->load->library('session');
if(!$this->session->has_userdata('zoo'))
{
$fooBar = md5(uniqid(rand(), TRUE));//generates random number
$newdata = array(
'username' => 'nirali',
'zoo' => $fooBar
);
$this->session->set_userdata($newdata);
exit;
}
}
public function read_session(){
$array = $this->session->all_userdata();
print_r($array);
exit;
}
}
在第一次請求構造的setter方法會被執行並且它填補會話變量。並因退出而停止執行;聲明。
當我打電話read_session()它打印
Array ([__ci_last_regenerate] => 1489646422 [username] => nirali [zoo] => 531d8bfb21ed21b83bc7e3763a04f88c)
,當我回憶起read_session()它打印
Array ([__ci_last_regenerate] => 1489647898 [username] => nirali [zoo] => cb675bee85da672c95166dbc1dbbdfd2)
我得到預計的用戶名來nirali
價值 - 所有的好 但對於動物園我總是得到不同的價值,我期待同一屆會議相同的價值
更新
在進一步的調試,我發現。服務器沒有迴應任何cookie作爲迴應。
出了什麼問題,其中不發送任何會話cookie迴響應服務器配置?
嘗試$ foobar的= MD5(uniqid(RAND(),TRUE));從if語句中獲取此行。 –
@ Shahid如何幫助?是不是它只是在每次請求時調用它(與OP設置時相反)? –
@JigarJoshi不確定。這就是爲什麼我在評論中提出建議並沒有發佈答案 –