hdusec 发表于 2010-1-16 14:08:46

session闪出数据的使用

我使用的情形大概是这样的:
login登入后进入检测页面 如果不成功 写入flashdata并跳转到登陆页面 将这个数据闪出为什么没有效果呢??

检测页面:
失败后操作
    $this->session->set_flashdata('flash_error','登录失败,请确定用户名或者密码是否');
    redirect('welcome/user/1','refresh');
然后:
   $data['error'] = $this->session->flashdata('flash_data');
   $this->load->view('login',$data);
在login.php中
   <?php
            if(isset($error))
            {
                  echo $error;
             }
   ?>

这样使用可以不?怎么会没有效果?

hdusec 发表于 2010-1-16 14:10:49

汗 太粗心了

hdusec 发表于 2010-1-16 14:12:18

//$data['error'] = $this->session->flashdata('flash_data');
//data 改成error

hdusec 发表于 2010-1-16 14:40:34

<?php
            if(!empty($error))
            {
                  echo $error;
             }
   ?>
应该改成这样

hdusec 发表于 2010-1-16 14:40:49

结贴!!!

baiyuxiong 发表于 2010-1-21 00:07:56

闪出数据是保存在session里面的,只不过Session数据只对下次服务器请求可用, 然后会自动清除。所以你根本不用通过$data数据来传递。
控制器里:$this->session->set_flashdata('item', 'value');
view里:$this->session->flashdata('item');
就可以了。

hdusec 发表于 2010-1-22 15:09:43

回复 6# baiyuxiong


    嗯啊知道了。。

hdusec 发表于 2010-1-22 15:32:59

闪出数据是保存在session里面的,只不过Session数据只对下次服务器请求可用, 然后会自动清除。所以你根本不 ...
baiyuxiong 发表于 2010-1-21 00:07 http://codeigniter.org.cn/forums/images/common/back.gif


    我试验下 没有成功 是不是我的流程不对?
我的步骤如下:
   login提交后 检测用户名密码 如果错误 将错误信息作为闪出数据 然后重新调用login方法 并将这个闪出数据在view里面显示。
在view里面 对这个闪出数据直接echo么?要不要做无值或者没有设定的判断?如何做?谢谢!

hdusec 发表于 2010-1-22 15:41:31

额 看来是不能判断的判断后 值消失 再打印 会报错 没这个变量

baiyuxiong 发表于 2010-1-23 14:08:33

回复 9# hdusec
可以判断的吧?你可以看看openblog的实现。
页: [1]
查看完整版本: session闪出数据的使用