【问题标题】:Codeigniter : flashdata between redirect and loading viewCodeigniter:重定向和加载视图之间的flashdata
【发布时间】:2015-04-25 18:52:01
【问题描述】:

在控制器注册中

    function signup() { 
     if('user already exists') {
     $this->session->flashdata('flsh_msg', 'You have already signed up using goole. you will be redirected to home page.');
    redirect('signup/signup/show_message'); 
     }
 }

在同一个控制器中显示消息,只是为了显示视图

 function show_message()
  {
      $this->load->view('header/header');
      $this->load->view('signup/signup_message');
      $this->load->view('footer/footer');
  }

在查看文件中:

<div class="alert alert-success">
    <?php echo $this->session->flashdata('flsh_msg'); ?>
</div>

我无法显示“您已经使用 goole 注册。您将被重定向到主页。”消息显示,我已经测试了 keep_flashdata 和 set_flashdata。

还有其他方法可以做到这一点吗?如何在重定向和调用视图之间传递 flash 消息

【问题讨论】:

  • // if('user already exists') { // 它来自哪里?它是可变的吗?
  • 不,这只是一个条件,在此我检查了“isset”,如果返回计数大于 0 等。
  • 我没有写条件代码,而是使用文本'用户已经存在'提到它
  • 有效吗?请检查我的以下答案?
  • 我得到了 flsh_msg 的空白值。 $this->session->set_flashdata('flsh_msg', '############');回声“
    ”; print_r($this->session->all_userdata());数组 ( [session_id] => 1f85e93b142e5bf0b96d802e9c0168c4 [ip_address] => 127.0.0.1 [user_agent] => Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:35.0) Gecko/20100101 Firefox/35.0 [last_activity] => 14247777 ] => [flash:new:flsh_msg] => )

标签: php codeigniter redirect message


【解决方案1】:

控制器变化:

$this->session->set_flashdata('flsh_msg', 'You have already signed up using goole. you will be redirected to home page.');

视图原样:

<?php echo $this->session->flashdata('flsh_msg'); ?>

希望这对您有所帮助。谢谢!!

【讨论】:

    【解决方案2】:

    试试这个。

    function signup() { 
        if('user already exists') {
           $this->session->set_flashdata('flsh_msg', 'You have already signed up using goole. you will be redirected to home page.');
              redirect('signup/signup/show_message'); 
        }
    }
    

    flashdata的设置函数是set_flashdata,不仅flashdata..只有flashdata("flsh_msg")会得到那个字符串,但是set_flashdata设置它;)

    【讨论】:

    • 问题是闪存数据。更改为 set_flashdata .. 谢谢!!
    • @MangeshSatheIND 没问题,如果您对我的回答感到满意,请单击该箭头并将我的回答标记为正确,谢谢 :)
    • Daniel Rossko Rosa ...投票需要 15 个声望。我只有 10 个
    【解决方案3】:
    //Controller
    
    $this->session->set_flashdata('flsh_msg', 'You have already signed up using goole. you will be redirected to home page.');
    redirect('signup/signup/show_message'); 
    
    //View
    
    <?= $this->session->flashdata('flsh_msg'); ?>
    

    【讨论】:

    • 虽然这段代码可能会解决问题,但一个好的答案应该解释代码的什么以及如何它有帮助
    【解决方案4】:
    $this->session->set_flashdata('flsh_msg', 'You have already signed up using goole. you will be redirected to home page.');
    

    【讨论】:

      猜你喜欢
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      • 2018-04-01
      • 2022-01-24
      • 2013-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多