为什么我得到身份不明的索引:用户名和密码?

时间:2019-06-17 01:39:50

标签: php jquery html forms

更新:看来我已经成功执行了AJAX POST请求,因为它在#userError中输出了PHP错误,并且在我的旧代码中更改了错误,但是我仍然得到了身份不明的索引

在这一点上,我已经尝试了所有我能想到的...

我的问题:为什么我在checkLogin.php上获得的用户名和密码的索引都不确定,而在login.php上,信息不是无效的索引。

  • 我尝试将$ _POST ['username'](&pwd)切换为$ _REQUEST,希望我的工作成功了,但是没有

只要填写了用户名和密码输入字段,就会调用此函数。我使用event.preventDefault();。阻止提交,该请求将在页面完全加载后调用,如果error == 0,则调用该函数。

function checkLogin() {

    $("#login_form").submit(function(event) { //Create a Submit Handler

            //var formData = ; //Serialize the form data

            if (window.XMLHttpRequest) { //Launch XML Request
                http = new XMLHttpRequest();
            } else {
                http = new ActiveXObject("Microsoft.XMLHTTP");
            }

            http.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
                    $(this).text(this);
                    $("#userError").text(this.responseText);
                }
            };

            http.open("POST", "checkLogin.php", true);
            http.send();
    });

    $("#login_form").submit(); //Submit the form

checkLogin.php(DB是实际私人信息的占位符)

    $link = mysqli_connect('DB', 'DB', 'DB', 'DB'); //Database Connection

    if (!$link) { 
        die('Could not connect: ' . mysqli_connect_error()); 
    }

    if ($_SERVER['REQUEST_METHOD'] === 'POST') { //Keeps the text inside the this.responseText
        //Preparing and Binding SQL statement
        $stmt = mysqli_prepare($link, "SELECT username, password FROM login WHERE username =? and password =?");
        mysqli_stmt_bind_param($stmt, "ss", $username, $password);

        //PRINTS UNIDENTIFIED INDEX
        $username = $_POST['username']; //mysqli_real_escape_string($link, $_POST['username']); //Retrieving the username 
        $password = $_POST['password']; //mysqli_real_escape_string($link, $_POST['password']); //Retrieving the password
        mysqli_stmt_execute($stmt);

        $result = mysqli_stmt_get_result($stmt);
        $row = mysqli_fetch_assoc($result); 
    }

if (!$stmt) {
echo "this is invalid";
}

HTML表单标签:(此处不包含表单内容-但在client_login.php上有)

<form action="login.php" method="post" name="login_form" id="login_form">
</form>

预期:如果信息不正确,请立即执行任何操作-如果正确,请运行login.php脚本
实际:$ username和$ password的未识别索引

错误:注意:未定义的索引:第15行的(filePath)/checkLogin.php中的用户名
注意:未定义的索引:第16行(filePath)/checkLogin.php中的密码

0 个答案:

没有答案