这是我第一次使用PHP登录表单吗?MYSQLI。我正在simplest.com/siteezy.com上做教程,在登录过程中遇到了问题。主要问题是,该表单将接受任何输入(甚至是空白字段),并将人员带到登录页面(account.php),无论他们是否在网站上注册。注册方面的工作似乎很好。我已经看了好几遍教程,并将代码逐字逐句地复制了下来。。我想知道我是不是错过了什么?在其他问题中似乎找不到答案。谢谢
<?php require 'connect.php'; ?>
<?php
if(isset($_POST['login'])){
$emailaddress = $_POST['EmailAddress'];
$password = $_POST['Password'];
$result = $con->query("SELECT * FROM users WHERE EmailAddress='$emailaddress' AND Password='$password'");
$row = $result->fetch_array(MSQLI_BOTH);
session_start();
$_SESSION["UserID"] = $row['UserID'];
header('Location: account.php');
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
<link rel="icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="style/style.css">
</head>
<body>
<div class="container">
<!-- LOGIN FORM -->
<h3>Login here</h3>
<form action="" method="post" name="loginform" id="loginform">
<div class="form-group">
<div>Email Address:</div>
<input id="emailaddress" type="email" required="required" name="emailaddress" maxlength="88" class="form-control">
</div>
<div class="form-group">
<div>Password:</div>
<input id="password" type="password" name="password" class="form-control">
</div>
<input name="login" type="submit" class="button" value="login">
</form>
</div>
您应该检查表单元素是否已设置。例如:
if(isset($_POST['emailaddress']) && isset($_POST['password']))
然后检查行数是否大于1:
if($result->num_rows > 1)
如果是这样的话,那么你应该重定向到第二页。否则什么也不做。
编辑:
<?php require 'connect.php'; ?>
<?php
if(isset($_POST['emailaddress']) && isset($_POST['password'])){
$emailaddress = $_POST['emailaddress'];
$password = $_POST['password'];
$result = $con->query("SELECT * FROM users WHERE EmailAddress='$emailaddress' AND Password='$password'");
if($result->num_rows > 0) {
session_start();
$_SESSION["UserID"] = $row['UserID'];
header('Location: account.php');
}
}
?>