PHP 文件不起作用 - 登录表单


PHP file won't work - login form

它不会返回到索引.html当输入错误的密码时,它只会返回到登录.html。请帮忙

<!DOCTYPE html><?php session_start();?>
<html>
<head>
<title>User Login</title>
</head>
<body>
<form action="login.php" method="post">
<table width="500" align="center" bgcolor="skyblue">
<tr align="center">
<td colspan="3"><h2>User Login</h2></td>
</tr>
<tr>
<td align="right"><b>Email</b></td>
<td><input type="text" name="email" required="required"/></td>
</tr>
<tr>
<td align="right"><b>Password:</b></td>
<td><input type="password" name="pass" required="required"></td>
</tr>
<tr align="center">
<td colspan="3">
<input type="submit" name="login" value="Login">
</td>
</tr>
</table>
</form>
</body>
</html>

这是我的索引.php

<!DOCTYPE html>
<?php
// establishing the MySQLi connection

$con = mysqli_connect("localhost","root","usbw","users");
if (mysqli_connect_errno())
{
echo "MySQLi Connection was not established:"  . mysqli_connect_error();
}
// checking the user
if(isset($_POST['login'])){
$email = mysqli_real_escape_string($con,$_POST['email']);
$pass = mysqli_real_escape_string($con,$_POST['pass']);
$sel_user = "SELECT * FROM users WHERE user_email='$email' AND user_pass='$pass'";
$run_user = mysqli_query($con, $sel_user);
$check_user = mysqli_num_rows($run_user);
if($check_user> 1){
$_SESSION['user_email']=$email;
echo "<script>window.open('loggedin.html','_self')</script>";
}
else {
echo "<script>window.open('index.html', '_self') </script>";
}
}
?>

这是我的登录名.php

它不会返回到索引.html当输入错误的密码时,它只会返回到登录.html。请帮忙

尝试:

if($check_user >= 1) or if($check_user > 0)

而不是

if($check_user > 1)

因为,根据您的要求,我认为您只选择一个用户,因此,如果您> 1您必须至少选择 2 个用户。

而且,要重定向,请参阅header方法。例如:header('Location: loggedin.html');会将您重定向到"登录"页面。

而且你必须在所有其他事情之前使用session_start()。因此,在定义doctype之前使用session_start

使用header("Location: ")重定向,但请确保之前没有输出任何其他 HTML,例如 <!DOCTYPE html> 标记或任何空格。我绝对不会使用 javascript 重定向到这里。

这是一个登录表单,因此只能接受一个用户名和密码匹配。当然,num_rows的结果应该是 1。

 if ($check_user == 1) {
    $_SESSION['user_email'] = $email;
    header('Location: loggedin.html');
 }
 else {
    header('Location: index.html');
 }

你可以在下面使用它将起作用

 $sel_user = "SELECT * FROM users WHERE user_email='".$email."' AND user_pass='".$pass."'";
if($check_user > 0)