首页 > 解决方案 > ajax调用时如何从php文件中执行代码

问题描述

好的,所以我有 php 代码,它应该在尝试登录时检查数据库中是否存在现有用户并发送回 javascript 失败或成功

php代码:

<?php 

require_once 'Korisnik.php';
require_once 'dbconn/korisnikdb.php';

if ($_SERVER["REQUEST_METHOD"] === "POST") {
    // collect value of input field

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

    $korisnik = getKorisnikByUserPass($username, $password);

    if ($korisnik == null) {
        $statusArray = array("status"=>"fail");
        echo json_encode($statusArray);
        return;
    } else {
        session_start();
        $_SESSION["prijavljeniKorisnik"] = $username;

        $statusArray = array("status"=>"success");
        echo json_encode($statusArray);
        return;
    }
  }

?>

这里我有我的 javascript 代码:

$(document).ready(function() { 
    var usernameInput = $('#usernameInput');
    var passwordInput = $('#passwordInput');
    var pogresniPodaci = $('#pogresniPodaci');
    var praznaPolja = $('#praznaPolja');
    pogresniPodaci.hide();
    praznaPolja.hide();

    $('#submitButton').on('click', function(event) {
        var username = usernameInput.val();
        var password = passwordInput.val(); 

        console.log(username);
        console.log(password);


        if (username == '' || password == '') {
            praznaPolja.show();
            event.preventDefault();
            return false;
        }

        var params = {
            'username': username, 
            'password': password
        }
        $.post('loginCheck.php', params, function(data) { 

            console.log(data.status);

            if (data.status == 'fail') {
                pogresniPodaci.show();
                usernameInput.val('');
                passwordInput.val('');
                return;
            }
            if (data.status == 'success') {
                location.href = 'pocetna';
            }
        });

        event.preventDefault();
        return false;
    });
});

http://prntscr.com/skb37r -> 在这里你可以看到我按下那个按钮后的状态

问题是 loginCheck.php 中的 php 代码从未真正执行过,我尝试在 php 文件的开头添加 echo 但它没有执行。

标签: javascriptphp

解决方案


您正在向 localhost 发送 http 请求。即使文件不存在,您的 localhost 也会返回状态 200,除非它被配置为抛出错误。

试试这个:转到http://localhost/loginCheck.php并在那里回显任何内容。

echo "This is loginCheck";

如果它回显,您就在正确的路径上登录检查文件。如果可行,请转到浏览器开发工具 > 网络 > 并查看请求标头并找到“请求 URL”标头。它应该是“ http://localhost/loginCheck.php ” - 您之前访问过的文件的路径。如果不是,您必须在 $.post 请求中修复它。


推荐阅读