Codeigniter会话类不起作用

时间:2016-10-04 19:40:06

标签: php codeigniter session

我在autoload.php中加载了会话类,但是当我使用CodeIgniter会话时没有任何反应。

示例:我设置了闪存数据:

$this->session->set_flashdata('message', 'HELP!');

当我打印此信息时,没有任何事情发生!

示例:

echo $this->session->flashdata('message');

我的代码有什么问题?

注意:我一般遇到CodeIgniter Session问题,set_flashdata和set_userdata都有问题。

更新:

这是服务器问题,现在已经解决了。 谢谢大家!

3 个答案:

答案 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">&times;</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">&times;</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项目,它将起作用。