AJAX> PHP登录不工作

时间:2014-11-27 02:42:52

标签: php jquery ajax

我正在尝试使用html>创建一个登录表单ajax> php,问题是php无法正常工作,我不知道问题出在哪里,我认为ajax无法执行我的php文件。我需要帮助。提前谢谢。

这是我的HTML代码:我的表单和输入在

下面
          <form id="loginForm">
            <input type="text" data-clear-btn="true" name="username" id="username" value="" placeholder="Username / ID No.">
            <input type="password" data-clear-btn="true" name="password" id="password" value="" placeholder="Password">
            <input type="checkbox" name="rem_user" id="rem_user" data-mini="true">
            <label for="rem_user">Remember me</label>
            <input type="submit" name="login" id="login" value="Log in" class="ui-btn" />
          </form>
          <div class="err" id="add_err"></div>

在我的php文件上发送请求的AJAX脚本

    <script>
        $(document).ready(function(){
            $("#loginForm").submit(function(){
                var username = $("#username").val();
                var password = $("#password").val();
                // Returns successful data submission message when the entered information is in database.
                var dataString = 'username=' + username + '&password=' + password;
                    if (username == '' || password == ''){
                        alert("Please Fill All Fields");
                    }
                    else {
                    // AJAX Code To Submit Form.
                        $.ajax({
                            type: "POST",
                            url: "php/login-action.php",
                            data: dataString,
                            success: function(result){
                                window.location="#report_page";
                            }
                        });
                    }
                return false;
            });
        });
    </script>

PHP文件

<?php

require "includes/connection.php";
include "includes/function.php";
if(isset($_POST['login'])){


    $username = $_POST['username'];
    $password = $_POST['password'];

    $username = sanitize($username);
    $password = sanitize($password);
    $pass2 = md5($password);
    $salt = "sometext";
    $validateHash = $salt.$pass2;
    $pass = hash("sha512", $validateHash);

    $sql = "SELECT * FROM user_login WHERE username='".$username."' and password='".$password."'";
    $result = mysqli_query($con,$sql) or die("Error: ". mysqli_error($con));

    $count=mysqli_num_rows($result);

    while($row=mysqli_fetch_array($result))
        {
            $id = $row['user_id'];
            $username = $row['username'];
            $name = "".$row['firstname']." ".$row['lastname']."";
            $acc_type = $row['Acc_Type'];
        }
        if($count==1){
            if($acc_type == 'user') {
                $_SESSION["id"] = $id;
                $_SESSION["username"] = $username;
                $_SESSION["name"] = $name;
                echo 'true';
            }
            else {
                echo 'false';
            }

        }


}
?>

2 个答案:

答案 0 :(得分:1)

正如卡特拉在评论中提到的那样。

您的PHP正在寻找$_POST['login'],并且您的$.ajax来电未通过。

所以这是答案

var dataString = 'login=login&username=' + username + '&password=' + password;

调试提示

  • ajax是否已将所有必需的输入发送给PHP(您可以从浏览器开发人员工具中检查)
  • php是否收到了所有必需的输入(您可以var_dump($_POST)
  • php是否成功连接到mysql
  • ajax是否从PHP接收数据(使用alertconsole.log

答案 1 :(得分:0)

试试这个,如果你得到错误状态

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
        $(document).ready(function(){
            $("#loginForm").submit(function(){

                    if (username == ' ' || password == ' '){
                        alert("Please Fill All Fields");
                    }
                    else {
                    // AJAX Code To Submit Form.
                        $.ajax({
                            type: "POST",
                            url: "php/login-action.php",
                            data: $(this).serialize(),
                            success: function(result){
                               alert('sucess'); //window.location="#report_page";
                            }
                        });
                    }
                return false;
            });
        });
    </script>