通过php-ci设置flash消息


flash message setting through php ci

我正在尝试向数据库插入一个条目。首先,我检查电子邮件id是否已经注册。如果是,将显示一条消息,说明电子邮件id已被获取,否则数据将插入数据库。

但是,即使在页面刷新之后,消息也会持续显示。我希望它随着页面刷新而消失。

    public function register()
    {   
        $this->load->library('form_validation');
        $this->form_validation->set_rules('email','email','required|is_unique[register.email]');
        if($this->form_validation->run() == FALSE){

             ////////////problem is here  ///////////////////////
            $this->load->view('view/login_register');
            $this->session->set_flashdata('message_error','This id is already taken');
        }
        else
        {
           ///$username=$this->input->post('username');
            $email=$this->input->post('email');
            $data= array(
             ////'email'=>$this->input->post('email')
                'email'=>$email,   
          //'password'=>$this->input->post('password'),
                );
            $last_id=$this->model->registeration($data);
            if ($last_id>0) {
                $this->send_email($email);

                $this->session->set_flashdata('message', 'To complete registration, click the link in email we just send you at khadija@precisetech.com.pk');
                redirect('controller/register');
            }

        } 
    if(error_flag == 1){
      return false;
    }else{
      return true;
    }
  }

请帮助

我有另一种方法。如下所示:

  • 控制器内:

    if($this->form_validation->run() == FALSE){
    
        $data['msg'] = '<div class="alert alert-dismissable alert-danger"><button class="close" data-dismiss="alert" type="button">×</button>This id is already taken.</div>';
        $this->load->view('view/login_register', $data);
    
    }
    
  • 在视图中这样做:

    <?php if(isset($msg)){echo $msg ;} ?>