2017-06-17 119 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

我不明白,为什么你会得到一个错误,如果你会加载会话库,我认为这是正确的方式 –