首页 > 解决方案 > 即使我尚未登录,也会弹出登录验证警报

问题描述

我尝试对无效登录发出警报,所以我使用

$this->session->set_flashdata('error', 'Invalid Credentials');  
            redirect("admin/login");

我把它放在我的索引函数中

$data=[];
    if (isset($_SESSION['error'])) {

        $data['error']=$_SESSION['error'];
    }else{
        $data['error']="NO_ERROR";

    }
    
    //$this->load->helper('url');
    $this->load->view('adminpanel/loginview',$data);

但是当我重新加载我的登录页面时,警报已经执行,有人可以帮我吗?这是我的完整控制器

public function index()
{

    $data=[];
    if (isset($_SESSION['error'])) {

        $data['error']=$_SESSION['error'];
    }else{
        $data['error']="NO_ERROR";

    }
    
    //$this->load->helper('url');
    $this->load->view('adminpanel/loginview',$data);

}

function login_post(){
    //$this->load->helper('url'); set at autoload file
    // print_r($_POST); test the post result
     if (isset($_POST)) {
        $email=$_POST['email'];
        $password=$_POST['password'];

        $query = $this->db->query("SELECT * FROM `backenduser` WHERE `username`='$email' AND `password`='$password'");

        if ($query->num_rows()) {
            // credential are valid

            $result = $query->result_array();
                //echo "<pre>";
            //print_r($result); die();

            $this->session->set_userdata('user_id', $result[0]['uid']);

            redirect('admin/dashboard');

        }
        else{
            //invalid credentials
            $this->session->set_flashdata('error', 'Invalid Credentials');  
            redirect("admin/login");
        }

     }
     else{
        die("Invalid Input!");
     }
}

function logout(){
    session_destroy();
}

}

标签: phpcodeignitercontrollercodeigniter-3codeigniter-flashdata

解决方案


也用这个

if(!empty($_POST)){
   ...
}

推荐阅读