繁体   English   中英

Codeigniter会话类不起作用

[英]Codeigniter session class not working

我在autoload.php中加载了会话类,但是当我使用CodeIgniter会话时,什么也没有发生。

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

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

当我打印此信息时,什么都不会发生!

例:

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

我的代码有什么问题?

注意:一般来说,我在使用CodeIgniter会话时遇到问题,但在使用set_flashdata和set_userdata时遇到问题。

更新:

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

Flash数据仅可用于该特定会话中的下一个服务器请求。 表示如果您在加载视图后提出了其他请求或进行了重定向,则Flash消息将不会出现。 这样别忘了在配置文件自动加载会话库中添加加密键密钥,并且在加载视图后不要尝试重定向到另一个页面。 希望这能回答您的问题

没有任何反应,因为:

$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;

Codeigniter官方网站下载最新版本的Codeigniter(版本3.1.6),然后将系统文件夹替换到您的Codeigniter项目中,它将起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM