2014-05-07 18 views
0

如何在codeigniter中查看flash錯誤....我在 codeigniter創建登錄,但如果用戶登錄值不等於數據庫表 值。那麼我需要顯示錯誤....無效的用戶名或 密碼..對於我m使用set_flashdata但是在查看時,我 通過error_message()調用。那麼錯誤顯示:如何在codeigniter中查看閃存錯誤數據

調用未定義功能ERROR_MESSAGE().....

mylogin AUTH控制器

public function auth() { 

     $data['title'] = 'Heart Surgeon'; 
     $this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean'); 
     $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|callback_login'); 

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

      $Value['admin_username'] = $this->input->post('username'); 
      $Value['admin_password'] =md5($this->input->post('password')); 

      if ($Value != null) { 

       $result = $this->user_model->login($Value); 
       if($this->session->set_userdata($result) != null){ 
        redirect('dashboard'); 
       } 

      } 
     } else { 
       $this->index(); 

     } 
    } 

我的模型

public function login($value) { 

     $query = $this->db->get_where('tbl_admin', $value, 1); 


     if ($query->num_rows() > 0) { 

      $row = $query->row_array(); 

      $sess_arr = array(
       'admin_user' => $row['admin_username'], 
       'adm_key' => $row['admin_key'], 
       'admin_type' => $row['admin_type'], 
       'admin_id' => $row['admin_id'], 
       'admin_logged_in' => TRUE 
      ); 

      $this->session->set_userdata($sess_arr); 
     } 
     else{ 

      $this->session->set_userdata(array('msg_type'=>'error'));  
      $this->session->set_flashdata('error', 'Invalid username/password'); 
     redirect('home');  

     } 
    } 

我看來

<?php if (!defined('BASEPATH')) exit('No direct script access 
allowed'); ?> <?php $this->load->view('layout/header'); ?> 


<div class="container"> 

    <div class="row"> 
     <div class="col-md-4 col-md-offset-4 text-center logo-margin "> 
      <img src="<?php echo base_url(); ?>assets/img/logo.png" alt=""/> 
     </div> 
     <div class="col-md-4 col-md-offset-4"> 
      <div class="login-panel panel panel-default">     
       <div class="panel-heading"> 
        <h3 class="panel-title">Please Sign In</h3> 
       </div> 
       <div class="panel-body"> 
        <?php if (validation_errors()) { 
         ?> 
         <div class="warning" style="padding: 0px;"> 
          <?php echo validation_errors(); ?> 
         </div> 
        <?php 
        } 

        $atts = array(
         'width' => '650', 
         'height' => '400', 
         'scrollbars' => 'yes', 
         'status' => 'yes', 
         'resizable' => 'yes', 
         'screenx' => '0', 
         'screeny' => '0' 
        ); 
        ?> 
        <div><?php echo error_message();?></div> 
        <?php echo form_open('home/auth'); ?> 
        <fieldset> 
         <div class="form-group"> 
          <input class="form-control" placeholder="E-mail" name="username" type="email" autofocus> 
         </div> 
         <div class="form-group"> 
          <input class="form-control" placeholder="Password" name="password" type="password" value=""> 
         </div> 
         <div class="checkbox"> 
          <label> 
           <input name="remember" type="checkbox" value="Remember Me">Remember Me 
          </label> 
         </div> 


         <!-- Change this to a button or input when using this as a form --> 
         <input type="submit" value="login" class="btn btn-lg btn-success btn-block"> 
        </fieldset> 
        <?php echo form_close(); ?> 
       </div> 
      </div> 
     </div> 
    </div> </div> <?php $this->load->view('layout/footer'); ?>  

回答

0

基本上當我們設置使用set_flashdata method()任何名稱值對,

$this->session->set_flashdata('error', 'Invalid username/password'); 

它會自動被丟棄/從會話中刪除一旦將利用 $this->session->flashdata();方法來讀取。

我與Rakesh 100%同意。