登录空字段是成功的

时间:2017-12-21 10:15:31

标签: php

我慢慢变得疯了。这一次,我希望无法在按钮中点击登录并在不输入用户名或密码的情况下取消对象。

我试过这个:

Redirect after login example 1

Ridrect after login example 2

直到我结束了我的书面代码:

<?php 
session_start();
require('../includes/connect_to_db.php'); 

if (isset($_POST['username']) and isset($_POST['password'])){

$username = $_POST['username'];
$password = $_POST['password'];

$query = "SELECT * FROM `user` WHERE username='$username' and password='$password'";

$result = mysqli_query($connection, $query) or die(mysqli_error($connection));
$count = mysqli_num_rows($result);

if (empty($_POST['username'])||
   empty($_POST['password'])){
    $fmsg = "Invalid Login Credentials.";
    }   

if(mysqli_num_rows($result)>0){

$_SESSION['username'] = $username;
header("Location:Loginpage.php");

}else{
$fmsg = "Invalid Login Credentials.";
}
}
if (isset($_SESSION['username'])){

$username = $_SESSION['username'];
}

?>

当我在登录表单中输入任何内容时,它会显示:&#34;无效的登录凭据&#34;但当我让他们空着,只需点击&#34;登录&#34;他重定向到显示的页面。我失去了理智,我无法找到我犯下的该死的错误。

3 个答案:

答案 0 :(得分:0)

if (isset($_POST['username']) and isset($_POST['password']) and $_POST['username']!='' and $_POST['password']!=''){

你为什么不尝试这样的事情。

答案 1 :(得分:0)

您可以通过执行以下操作之一来检查用户的条目是否为空:

方法一

if(strlen($_POST['username']) > 0){
    //Then user's input is not empty
}

方法二

if(empty($_POST['username']) == true){
    //Then user's input is not empty
}

方法三

if($_POST['username'] !== ""){
    //Then user's input is not empty
}

在我自己的PHP应用程序中,我使用方法一和二。

答案 2 :(得分:0)

你应该先检查输入是否为空:

if(!empty($_POST['username']) && !empty($_POST['password']) )

或pr1nc3回答,如:

if (isset($_POST['username']) && isset($_POST['password']) && $_POST['username']!='' && $_POST['password']!=''){

还要var_dump($result);检查变量$ result 检查查询结果

因为在你的情况下,只要有查询结果,它就会创建会话。