登录验证警报弹出,即使我还没有登录



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

$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();
}

}

你的问题在这里:

if (isset($_POST)) {
...
}

这将始终返回true,因为$_POST始终可用,因此它将始终显示警报。您可以通过以下命令检查请求是否已发布:

if(count($_POST) > 0){
...
}

也用这个

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

相关内容

  • 没有找到相关文章

最新更新