Php 登录系统不工作

Php 登录系统不工作,php,Php,我创建了一个简单的登录页面,但代码不起作用。我尝试检查控制台,但它没有给我任何错误。输出为“0结果”。我试图纠正它,但我做不到。请参阅代码以供参考: 你们能告诉我错误吗 <html> <head> <title>Login Page</title> </head> <body> <?php include ('conn.php');

我创建了一个简单的登录页面,但代码不起作用。我尝试检查控制台,但它没有给我任何错误。输出为“0结果”。我试图纠正它,但我做不到。请参阅代码以供参考: 你们能告诉我错误吗

<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>