我尝试对无效登录发出警报,所以我使用
$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)){
...
}