Php 会话过期时设置闪存数据Codeigniter

Php 会话过期时设置闪存数据Codeigniter,php,codeigniter,flash,session,Php,Codeigniter,Flash,Session,当会话超时时,设置闪存数据消息的最佳方法是什么,然后可以在登录页面上获取消息 我有一个想要使用的警告变量,但似乎无法使其与会话一起工作超时我已将其重定向到登录页面会话已超时 但不确定使用我的错误数组设置闪存数据的最佳方法,有什么想法吗。 登录控制器: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Login extends MX_Controller { priva

当会话超时时,设置闪存数据消息的最佳方法是什么,然后可以在登录页面上获取消息

我有一个想要使用的警告变量,但似乎无法使其与会话一起工作超时我已将其重定向到登录页面会话已超时

但不确定使用我的错误数组设置闪存数据的最佳方法,有什么想法吗。

登录控制器:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Login extends MX_Controller {

   private $error = array();

   public function __construct() {
      parent::__construct();
      $this->load->library('user');
      $this->load->library('form_validation');
      $this->lang->load('common/login', 'english');
   } 

   public function index() {
      $this->form_validation->set_rules('username', 'Username', 'required|min_length[4]|max_length[12]');
      $this->form_validation->set_rules('password', 'Password', 'required|xss_clean');

      if($this->form_validation->run($this) == false) {

         $data['title'] = $this->lang->line('heading_title');

         $data['text_heading'] = $this->lang->line('text_heading');

         if (array_key_exists('warning', $this->error)) {
            $data['error_warning'] = $this->error['warning'];
         } else {
            $data['error_warning'] = '';
         }

         if (null !==($this->session->flashdata('message_name'), $this->error)) {
            $data['message'] = $this->session->set_flashdata('message_name', 'This is my message');
         } else {
            $data['message'] = '';
         }

         $this->load->view('common/login', $data);

      } else{ 

         if($this->validate()) {

             redirect('dashboard');

            } else {

               $data['title'] = $this->lang->line('heading_title');

               $data['text_heading'] = $this->lang->line('text_heading');

               if (array_key_exists('warning', $this->error)) {
                  $data['error_warning'] = $this->error['warning'];
               } else {
                  $data['error_warning'] = '';
               }

               if (null !==($this->session->flashdata('message_name'), $this->error)) {
                  $data['message'] = $this->session->set_flashdata('message_name', 'This is my message');
               } else {
                  $data['message'] = '';
               }

               $this->load->view('common/login', $data);

         }
      }
   }

   function validate() {
      $username = $this->input->post('username');
      $password = $this->input->post('password');

      if ($this->user->login($username, $password)) {
          return true;
      } else {
         $this->error['warning'] = $this->lang->line('error_login');
         return !$this->error;
      }
   }
}

&时代;

set_flshdat是codeigniter功能,仅在下一个服务器请求时可用,然后自动清除。您可以在此处查看详细信息,并在此链接中搜索set_flashdata

所以,若你们需要重定向到其他页面或同一页面后的消息

在第一个请求的控制器页面上设置flashdata

$this->session->set_flashdata('message_name', 'This is my message');
在第二个服务器请求或您的重定向页面上,将使用下面的

echo $this->session->flashdata('message_name');
所以,基本上,若你们不想重定向页面,想加载视图

//set data in controller 
$data['message_name'] = 'This is my message'
//and pass this to view
$this->load->view('yourview_name', $data);
在你的查看页面上写下

echo $message_name;
echo $message_name;