我在autoload.php中加载了会话类,但是当我使用CodeIgniter会话时没有任何反应。
示例:我设置了闪存数据:
$this->session->set_flashdata('message', 'HELP!');
当我打印此信息时,没有任何事情发生!
示例:
echo $this->session->flashdata('message');
我的代码有什么问题?
注意:我一般遇到CodeIgniter Session问题,set_flashdata和set_userdata都有问题。
更新:
这是服务器问题,现在已经解决了。 谢谢大家!
答案 0 :(得分:2)
闪存数据仅适用于该特定会话中的下一个服务器请求。表示如果您在加载视图后发出另一个请求或进行重定向,则不会显示Flash消息。除此之外,不要忘记在配置文件自动加载会话库中添加encryption_key密钥,并且在加载视图后不要尝试重定向到另一个页面。希望这会回答你的问题
答案 1 :(得分:0)
没有任何事情发生,因为:
$this->session->set_flashdata('message', 'HELP!');
只是在会话'消息'中设置'帮助';
$this->session->set_flashdata('error', 'WOOPS!');
您需要在视图中设置一些条件才能阅读会话并查看结果:
<?php
if($this->session->flashdata('message'))
{
?>
<div class="container" style="padding-top:80px;">
<div class="alert alert-info alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<?php echo $this->session->flashdata('message');?>
</div>
</div>
<?php
}elseif($this->session->flashdata('error')){
?>
<div class="container" style="padding-top:80px;">
<div class="alert alert-warning alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<?php echo $this->session->flashdata('error');?>
</div>
</div>
<?php
}
?>
正如您所看到的,这里有两个示例,一个用于消息(成功),另一个用于错误(失败)
修改强>
作为您评论的反应,我在此发布,因为在评论中不可读:
如你所说,你已经这样做了:
$autoload['libraries'] = array('database','session');
你是否也在配置中设置了它?
$config['encryption_key'] = 'DCF564RT9JN761AZX56FR76Rd8hg6s12';
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_session';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
答案 2 :(得分:0)
从Codeigniter official website下载最新版本Codeigniter(版本3.1.6)并将系统文件夹替换为您的Codeigniter项目,它将起作用。