2017-06-17 116 views
2

儘管在這裏有無數類似的問題,但它們中的其中一個對我而言並不起作用。所以,我決定在這裏發佈。CodeIgniter 3會話在頁面刷新後破壞

那麼問題是會話正在銷燬頁面刷新/重定向後。我使用XAMPP服務器(最新版本與PHP 7.x)在Windows 10,我認爲,它與Codeigniter設置的問題,但是,我只是測試傳統會話代碼(沒有Codeigniter),並且工作正常。

傳統PHP代碼(正常工作)

session_start(); 
if(!isset($_SESSION['admin'])) { 
    $_SESSION['admin']='test'; 
    die('session not set, set it now'); 
} 
else { 
    echo $_SESSION['admin']; 
} 

笨代碼(這裏的問題)

if($this->session->userdata('admin')) { 
    echo $this->session->userdata('admin'); 
} 
else { 
    $this->session->set_userdata('admin', 'test'); 
    echo 'session not set, set it now'; 
} 

笨會話配置

$config['sess_driver'] = 'files'; 
$config['sess_cookie_name'] = 'ci_session'; 
$config['sess_expiration'] = 7200; 
$config['sess_save_path'] = 'C:\\xampp\\htdocs\\application\\cache\\session\\'; 
$config['sess_match_ip'] = FALSE; 
$config['sess_time_to_update'] = 300; 
$config['sess_regenerate_destroy'] = FALSE; 

注意相同笨代碼工作正常WAMP服務器 - 視窗10

+1

只是一個提示,而不是寫如'$ config ['sess_save_path'] ='C:\\ xampp \\ htdocs \\ application \\ cache \\ session \\';'使用'APPPATH'如'$ config ['sess_save_path'] = APPPATH。 'cache/session /';' – user4419336

+0

我尊重你的建議,儘管我手動檢查了目錄'C:\\ xampp \\ htdocs \\ application \\ cache \\ session \\'並在那裏找到會話文件,意味着,它工作正常。 – muaaz

+0

所以當'print_r($ this-> session-> userdata);'你得到任何東西? – lalithkumar

回答

0

你的代碼看起來correct.I覺得你可以看看Native-session。這可能會解決您的問題。

而且還檢查config.phpcookie_domain。這不應該是空的。

0

會話設置似乎是正確的,我想建議你,請在會議庫的application/config/autoload.php

$autoload['libraries'] = array('session'); 

希望如此,這將幫助你

+0

如果我不加載它,我肯定會得到一個錯誤。 – muaaz

+0

我不明白,爲什麼你會得到一個錯誤,如果你會加載會話庫,我認爲這是正確的方式 –