Codeigniter会话类不工作

问题描述:

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

例子:我设置的闪存数据:

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

当我打印此信息没有任何反应!

例子:

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

什么是我的代码的问题?

注意:我在CodeIgniter会话中遇到问题,一般是set_flashdata和set_userdata有问题。

UPDATE:

这是一个服务器的问题,现在它的解决。 谢谢大家!

+0

Flash数据仅适用于NEXT http请求。你正在提出另一个要求吗?如果是这样,你只有一个? – Kisaragi

+0

是的,我正在提出另一个请求,只有一个。 –

+0

你确定只有一个要求吗? – Kisaragi

闪存数据仅适用于您在该特定会话中的下一个服务器请求。意味着如果您在加载视图后发出另一个请求或进行重定向,则不会显示该闪光消息。和其他,那么这不会忘记在配置文件自动加载会话库中添加一个encryption_key密钥,并且不会在加载视图后尝试重定向到另一个页面。希望这会回答你的问题

+0

是的,我正在提出另一个请求,只有一个。 我在CodeIgniter会话中遇到了一些问题。问题与set_flashdata和set_userdata,我没有忘记encryption_key。 –

+0

你可以分享代码,所以我有一个更好的理解你是如何提出请求 –

+0

看到这个例子: if($ this-> ion_auth-> login($ this-> input-> post('identity'),$ (),$ this-> input-> post('password'),$ remember)){this-> session-> set_flashdata('message',$ this-> ion_auth-> messages()); 重定向('/','refresh'); } else { $ this-> session-> set_flashdata('message',$ this-> ion_auth-> errors()); 重定向('auth/login','refresh'); } –

没有发生,因为这样的:

$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 
    } 
?> 

正如你可以看到这里有两个例子一个是消息(成功),一个用于错误(失败)

编辑:

由于您的评论的反应我在这里发布这个,因为在T他评论不会是可读:

正如你说你已经做到了这一点:

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

这不是我的问题。 我知道如何打印flash数据并检查是否已设置。 我遇到了一般的codeigniter会话问题,set_flashdata和set_userdata有问题。 –

+0

我在答案中有一个编辑。我在那里发布,因为在这里不可读。这是一个奇怪的问题。 – Franco

+0

是的,我已经做了这个配置,它不工作 –

下载从Codeigniter official website最新版本笨(版本3.1.6),并替换系统文件夹到你的笨项目,它会工作。