首页 > 解决方案 > 执行临时数据时出错

问题描述

Form.php(控制器)

public function dispdata()
{
        $result['data']=$this->Form_model->displayrecords();
        $this->load->view('display_records',$result);

        if (!$this->session->userdata('ci_session')) 
        {
            redirect('Form/login');
        }
        else
        {
            $this->session->set_tempdata('item',$result,5);
        }
}

显示记录(查看)

<?php 
        if($this->session->tempdata('item')){
            redirect('Form/login');
        }
?>

我正在尝试使用 tempdata 概念。我有一个注册表单,其中我已将所有注册的详细信息存储在数据库中,而那些存储数据库的详细信息我已将其显示在视图页面中。

我如何在视图页面中显示所有数据库详细信息,该视图页面我试图仅显示 5 秒,5 秒后它应该重定向到登录页面。我已经尝试使用上面的代码,但它不工作请谁能告诉我我哪里出错了?

标签: phpsessioncodeigniter-3tempdata

解决方案


tempdata会话功能仅影响允许存储数据的时间。在您的情况下,5 秒后删除数据不会导致页面上的任何其他内容发生变化。

据我所知,你根本不需要tempdata。试试这个,看看你是否得到了你想要的行为。

public function dispdata()
{
    if (!$this->session->userdata('ci_session')) 
    {
        redirect('Form/login');
    }

    $result['data']=$this->Form_model->displayrecords();
    $this->load->view('display_records',$result);
    // sleep for 5 seconds
    sleep(5);
    redirect('Form/login');
}

为什么我else从你的代码中删除了?因为redirect不返回 - 它结束脚本执行。因此,当if评估为 true 并且重定向执行时,此脚本就完成了。


推荐阅读