直接页面时我无法显示验证错误消息

时间:2017-03-13 03:50:25

标签: php codeigniter login-script

我有登录检查程序的此功能,当$email$password错误时我想要重定向到另一个页面,例如登录facebook页面,$email和{{1} } incorect他们指向不同的页面,但仍然登录页面(但不是同一页面),并发送信息$password$email到页面

$password

但问题是我添加像这样的重定向页面

function basisdata_cek($password){
    $email = $this->input->post('email');
    $result = $this->login->login($email,$password);
    if($result){
        $sess_array = array();
        foreach($result as $row){
            $sess_array = $arrayName = array('kode_daftar'=>$row->kode_daftar, 'email'=>$row->email, 'password'=>$row->password);
            $this->session->set_userdata('logged_in',$sess_array);
        }
        return true;
    }else{
        $this->form_validation->set_message('basisdata_cek','invalid email or password');
        return false;
    }
}

当它是不正确的电子邮件时,它仍然是直接页面。密码,但}else{ redirect(base_url('index.php/login'),'refresh'); $this->form_validation->set_message('basisdata_cek','invalid email or password'); return false; } 的消息不会显示。

1 个答案:

答案 0 :(得分:2)

如果重定向,则无法获取form_validation消息。但你可以使用flashdata。

$autoload['libraries'] = array('session');中添加此application/config/autoload.php并将此代码放入您的登录页面

if ($this->session->flashdata('basisdata_cek')) {
    echo '<div class="alert alert-warning">';
    echo '<p>' . $this->session->flashdata('basisdata_cek') . '</p>';
    echo '</div>';
  } 

并在$this->session->set_flashdata之前将$this->form_validation->set_message改为redirect

 }else{
    $this->session->set_flashdata('basisdata_cek', 'Invalid email or password');
    redirect(base_url('index.php/login'),'refresh');        
    return false;
  }