我将AJAX和PHP称为登录名怎么了?

时间:2019-03-19 01:56:25

标签: php ajax login

我使用ajax和php的登录表单遇到一些麻烦,有人可以解决吗? 这是代码html: login.html

<div id="id01" class="modal">
        <form class="modal-content animate" action="" method="POST" id="login-form">
            <div class="container">
                <label for="login-email"><b>Username</b></label>
                <input type="text" placeholder="Enter Email" id="login-email" name="login-email" required>  
                <label for="login-password"><b>Password</b></label>
                <input type="password" placeholder="Enter Password" id="login-password" name="login-password" required>
                <label>
                    <input type="checkbox" checked="checked" name="remember"> Remember me
                </label><br>
                <span id="showError"></span>
                <button type="submit" id="btn-login" name="btn-login">Login</button>
            </div>
            <div class="container" style="background-color:#f1f1f1">
                <button type="button" onclick="document.getElementById('id01').style.display='none'" class="cancel-btn">Cancel</button>
                <span class="psw">Forgot <a href="#">password?</a></span>
            </div>
        </form>
    </div>
    <script>
       $(document).ready(function(){
           $("#btn-submit").click(function{
                var login-email = $("#login-email").val();
                var login-password = $("#login-password").val();
                var error = $("#showError");

                if(login-email != "" && login-password != ""){
                    $.ajax({
                        url: "checkLogin.php",
                        type: "POST",
                        data: { login-email: login-email, login-password: login-password},
                        success: function(response){
                            var msg = "";
                            if(response == "success"){
                                window.location = 'profile.php'; 
                            } else {
                                msg = "Tên đăng nhập hoặc mật khẩu không chính xác.";
                            }
                            $('#id01').css({"display": "block"});
                            error.html(msg);
                        }
                    });
                } else {
                    error.html("Email đăng nhập hoặc mật khẩu không được bỏ trống.");
                     return false;
                }
            });
        });
    </script>

这是代码php login.php

if(isset($_POST["btn-login"])){
    $email    = trim($_POST["login-email"]);
    $password = trim($_POST["login-password"]);
    $sql_login = "SELECT email, password, permission FROM users where email='$email' and password='$password'";
    $db->query($sql_login);
    $rows = $db->findOne();
    $permission = $rows['permission'];
    if($rows['email'] == $email && $rows['password'] == $password){
        echo "success";
    } else {
        echo "fail";
    }
    exit(); 
}

似乎不是要加载到ajax和php代码中,因为我已经尝试了很多次,但是我不知道这里的错误。

2 个答案:

答案 0 :(得分:0)

乍看之下,您的jQuery引用了nil,但是您的html却将其定义为btn-submit

答案 1 :(得分:0)

  1. 您调用 checkLogin.php ,但是php代码在 login.php
  2. 在login.php代码中,您检查了 btn登录,但是来自客户端的帖子数据没有btn登录

{ login-email: login-email, login-password: login-password}

所以if块将永远无法工作。

if(isset($_POST["btn-login"])){
...

}

您可以这样更改

if(isset($_POST["login-email"]) && isset($_POST["login-password"])){
...

}