用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4638|回复: 9
收起左侧

[讨论/交流] session闪出数据的使用

[复制链接]
发表于 2010-1-16 14:08:46 | 显示全部楼层 |阅读模式
我使用的情形大概是这样的:
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;
             }
   ?>

这样使用可以不?怎么会没有效果?
 楼主| 发表于 2010-1-16 14:10:49 | 显示全部楼层
汗 太粗心了
 楼主| 发表于 2010-1-16 14:12:18 | 显示全部楼层
//$data['error'] = $this->session->flashdata('flash_data');
//data 改成error
 楼主| 发表于 2010-1-16 14:40:34 | 显示全部楼层
<?php
            if(!empty($error))
            {
                  echo $error;
             }
   ?>
应该改成这样
 楼主| 发表于 2010-1-16 14:40:49 | 显示全部楼层
结贴!!!
发表于 2010-1-21 00:07:56 | 显示全部楼层
闪出数据是保存在session里面的,只不过Session数据只对下次服务器请求可用, 然后会自动清除。所以你根本不用通过$data数据来传递。
控制器里:$this->session->set_flashdata('item', 'value');
view里:$this->session->flashdata('item');
就可以了。
 楼主| 发表于 2010-1-22 15:09:43 | 显示全部楼层
回复 6# baiyuxiong


    嗯啊  知道了。。
 楼主| 发表于 2010-1-22 15:32:59 | 显示全部楼层
闪出数据是保存在session里面的,只不过Session数据只对下次服务器请求可用, 然后会自动清除。所以你根本不 ...
baiyuxiong 发表于 2010-1-21 00:07



    我试验下 没有成功 是不是我的流程不对?
我的步骤如下:
   login提交后 检测用户名密码 如果错误 将错误信息作为闪出数据 然后重新调用login方法 并将这个闪出数据在view里面显示。
  在view里面 对这个闪出数据直接echo么?要不要做无值或者没有设定的判断?如何做?谢谢!
 楼主| 发表于 2010-1-22 15:41:31 | 显示全部楼层
额 看来是不能判断的  判断后 值消失 再打印 会报错 没这个变量
发表于 2010-1-23 14:08:33 | 显示全部楼层
回复 9# hdusec
可以判断的吧?你可以看看openblog的实现。

本版积分规则