我慢慢变得疯狂。这次我希望不能点击登录按钮并重定向而不输入用户名或密码。
我试过这个:
Redirect after login example 1
直到我最终得到我的书面代码:
<?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'];
}
?>
当我在登录表单中键入任何内容时,它会说:“无效的登录凭据”,但是当我让它们清空并只需点击“登录”时,他就会重定向到显示的页面。我失去了理智,我无法找到我犯的那个该死的错误。
if (isset($_POST['username']) and isset($_POST['password']) and $_POST['username']!='' and $_POST['password']!=''){
你为什么不尝试这样的事情。
您可以通过执行以下操作之一来检查用户的条目是否为空:
方法一
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应用程序中,我将使用方法一和二。
您应该首先检查输入是否为空:
if(!empty($_POST['username']) && !empty($_POST['password']) )
或者作为pr1nc3回答,例如:
if (isset($_POST['username']) && isset($_POST['password']) && $_POST['username']!='' && $_POST['password']!=''){
还要检查var_dump($result);
的变量$ result来检查查询结果
因为在你的情况下,只要有查询结果,它就会创建会话。