Php 登录系统不工作
我创建了一个简单的登录页面,但代码不起作用。我尝试检查控制台,但它没有给我任何错误。输出为“0结果”。我试图纠正它,但我做不到。请参阅代码以供参考: 你们能告诉我错误吗Php 登录系统不工作,php,Php,我创建了一个简单的登录页面,但代码不起作用。我尝试检查控制台,但它没有给我任何错误。输出为“0结果”。我试图纠正它,但我做不到。请参阅代码以供参考: 你们能告诉我错误吗 <html> <head> <title>Login Page</title> </head> <body> <?php include ('conn.php');
<html>
<head>
<title>Login Page</title>
</head>
<body>
<?php
include ('conn.php');
$un = isset($_POST['name']);
$up = isset($_POST['pass']);
$query = "select * from login where l_name = '$un' AND l_pass = '$up'";
$result = mysqli_query($conn, $query);
$count = 0;
if(mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$name = $row['l_name'];
$pass = $row['l_pass'];
if ($un == $name && $up == $pass) {
$count = 1;
}
if($count==1 && !empty($un) && !empty($pa))
echo"Your Successfully Logged";
else
echo"You Failed";
}
}
else{
echo "0 result";
?>
<form name="form1" method="POST">
<fieldset>
<legend> Log in </legend>
<label> Username: <input type="text" name="name" />
<label> Password :<input type="text" name="pass" />
</fieldset>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
登录页面
登录
用户名:
密码:
问题在于这些行:
$un = isset($_POST['name']);
$up = isset($_POST['pass']);
用下面的替换它们。它们应为:
$un = isset($_POST['name']) ? $_POST['name'] : '';
$up = isset($_POST['pass']) ? $_POST['pass'] : '';
有几个错误:
$un = $_POST['name'];
$up = $_POST['pass'];
您忘记关闭您的或:
else{
echo "0 result";
}
还有一些注意事项:
- 当
mysqli\u查询失败时
- 密码
- 你对我敞开心扉
更健壮的代码是:
<html>
<head>
<title>Login Page</title>
</head>
<body>
<?php
include ('conn.php');
$un = isset($_POST['name']) ? $_POST['name'] : '';
$up = isset($_POST['pass']) ? $_POST['pass'] : '';
if(empty($un) || empty($up))
{
echo 'Please fill in the name and password fields';
}
else
{
$un = mysqli_real_escape_string($conn, $un);
$up = mysqli_real_escape_string($conn, $up);
$query = "select * from login where l_name = '$un' AND l_pass = '$up'";
$result = mysqli_query($conn, $query);
$count = 0;
if(mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$name = $row['l_name'];
$pass = $row['l_pass'];
if ($un == $name && $up == $pass) {
$count = 1;
}
if($count==1){
echo"Your Successfully Logged";
}
else{
echo"You Failed";
}
}
}
else{
echo "0 result";
}
}
?>
<form name="form1" method="POST">
<fieldset>
<legend> Log in </legend>
<label> Username: <input type="text" name="name" />
<label> Password :<input type="text" name="pass" />
</fieldset>
<input type="submit" name="submit" value="Submit">
</form>
</body>
登录页面
登录
用户名:
密码:
您在代码中看到这些行了吗:if(isset($\u POST['pass'])和&$\u POST['pass'])!=''{$up=isset($\u POST['pass']);}
这就是您的真正意思吗?isset()将返回一个布尔值,而不是POST super globalIn中包含的值。首先,我只是指出了代码中的错误部分。第二步,我重新编写了代码。不管怎样,也许我应该删除第一个。迈克的答案解决了吗?它应该有
<html>
<head>
<title>Login Page</title>
</head>
<body>
<?php
include ('conn.php');
$un = isset($_POST['name']) ? $_POST['name'] : '';
$up = isset($_POST['pass']) ? $_POST['pass'] : '';
if(empty($un) || empty($up))
{
echo 'Please fill in the name and password fields';
}
else
{
$un = mysqli_real_escape_string($conn, $un);
$up = mysqli_real_escape_string($conn, $up);
$query = "select * from login where l_name = '$un' AND l_pass = '$up'";
$result = mysqli_query($conn, $query);
$count = 0;
if(mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$name = $row['l_name'];
$pass = $row['l_pass'];
if ($un == $name && $up == $pass) {
$count = 1;
}
if($count==1){
echo"Your Successfully Logged";
}
else{
echo"You Failed";
}
}
}
else{
echo "0 result";
}
}
?>
<form name="form1" method="POST">
<fieldset>
<legend> Log in </legend>
<label> Username: <input type="text" name="name" />
<label> Password :<input type="text" name="pass" />
</fieldset>
<input type="submit" name="submit" value="Submit">
</form>
</body>