麻烦的AJAX登录电话

时间:2016-06-30 15:39:53

标签: php jquery html ajax

我正在尝试使用AJAX调用实现一个简单的登录表单,该表单重定向到我查询数据库的页面,然后将用户重定向到索引页面或返回登录页面。

HTML:

<form method="post">
<h4> Please Login </h4>
    <input id="user" class="name" type="text" placeholder="Enter Username"/>
    <input id = "pass" class="pw" type="password" placeholder="Enter Password"/>
    <ul>
        <li><a href="#">Forgot your password?</a></li>
        <li><a href="#">Please Register Here</a></li>
    </ul>
    <input class="hvr-shrink" id="submitlogin" type="submit" value="Log in"/>
</form>

的jQuery / AJAX:

$("#submitlogin").click(function() {
    var $username = document.getElementById("user").value;
    var $pass = document.getElementById("pass").value;
    $.ajax ({
        url: "login_request.php",
        type: "POST",
        data: {
           'username' : $username,
           'password' : $pass
        }
    });
});

login_request.php

 include "connect.php";
 $myusername = mysqli_real_escape_string($db,$_POST['username']);
 $mypassword = mysqli_real_escape_string($db,$_POST['password']); 

$sql = "SELECT username, password FROM `CGSB_Compliance`.`nd_users` WHERE username = '$myusername' AND password = '$mypassword'";
$result = mysqli_query($db, $sql);
$count = mysqli_num_rows($result);

if($count == 1){
    $_SESSION['user'] = $myusername;
    header("location:index.php");
} else {
    header("location:login.php");
}

我有一个包含一个用户名和密码的表,每次登录时,它都会刷新登录页面。我现在检查了我的代码几次,我似乎无法找到原因,为什么它不起作用。我觉得这是一个愚蠢的错误,但我看了很多例子,他们都有几乎相同的东西。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

您好我已经尝试过您的code问题是您的ajax request没有转到login page.也不会在$中使用sign javascript variables使用var或没有。 也可能是你没有打电话给jQuery library

我试过这个并自己跑。请试试这个。如果找到解决方案,请不要犹豫,将其标记为您的答案。

// download file and save in your file if you are not connected to net and include with correct path

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <Script>
    $(document).ready(function(){

    $("#postsubmit").click(function(e) {
        var pass = $("#pass").val();
         var username = $("#user").val();
            $.ajax({type:"POST",url:"login_request.php",data:{password:pass, username:username},
                    });
       });
    });
       </script>

    <h4> Please Login </h4>
    <form name="postcontent" >


        <input id="user" class="name" type="text" placeholder="Enter Username"/>
        <input id = "pass" class="pw" type="password" placeholder="Enter Password"/>
        <ul>
            <li><a href="#">Forgot your password?</a></li>
            <li><a href="#">Please Register Here</a></li>
        </ul>
         <input name="postsubmit" type="button" id="postsubmit" value="Sing Up"/>

     </form>

    login_request.php

    <?php
    $db = mysqli_connect('localhost','root','','yourdatabasename');
    echo $myusername = mysqli_real_escape_string($db,$_POST['username']);
     echo $mypassword = mysqli_real_escape_string($db,$_POST['password']);

    $sql = "SELECT username, pass FROM reg WHERE username = '$myusername' AND pass = '$mypassword'";
    $result = mysqli_query($db, $sql);
    $count = mysqli_num_rows($result);
    if($count == 1){
        $_SESSION['user'] = $myusername;
        header("location:index.php");
    } else {
        header("location:login.php");
    }

根据您的身份更改table namedatbase name

同时添加preventDefault()以限制页面刷新

答案 1 :(得分:-1)

我的朋友我认为您的问题出在您的jQuery / AJAX中:将其放在</body>标记的底部或将其放在$(document).ready(function{});