我试过这个:
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'];
}
?>
当我在登录表单中输入任何内容时,它会显示:&#34;无效的登录凭据&#34;但当我让他们空着,只需点击&#34;登录&#34;他重定向到显示的页面。我失去了理智,我无法找到我犯下的该死的错误。
答案 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
检查查询结果
因为在你的情况下,只要有查询结果,它就会创建会话。