首页 > 解决方案 > 获取显示为 Null 的请求表单数据

问题描述

我是 PHP 新手,这甚至可能不是问题。我有一个发送 fetch 请求的 JavaScript 函数。当我发送到 api.php 时,当我 var_dump() 变量 $studentnumber 时我得到一个空值。我检查了获取请求,它在请求中发送数据,所以 PHP 读取表单数据有问题......也许?在此先感谢这是学校的作业。

获取请求

function login() {
    var studentnumber = document.getElementById("studentnumber");
    var password = document.getElementById("password");
    var logindetails = new FormData();
    logindetails.append('studentnumber', studentnumber.value);
    logindetails.append('password', password.value);
    fetch('http://localhost/gaq/api/api.php?action=login', {
        method: 'POST',
        body: logindetails,
    }
)
    .then(function(response){
        if (response.status == 202) {
            var studentnumber = document.getElementById("studentnumber");
            var logindetails = new FormData();
            logindetails.append('studentnumber', studentnumber.value);
            fetch('http://localhost/gaq/api/api.php?action=processlogin', {
            method: 'POST',
            body: logindetails,
            });
            console.log("Success");
        } else {
            console.log("Error");
        }
    })

}

API.PHP 文件

<?php
    include 'database.php';
    include 'session.php';

    session_start();

    //header('Content-Type: application/json');
    
    $functions = new gaqfunctions();

    if(!isset($_SESSION['user_session'])) {
       $_SESSION['user_session'] = new gaqsession;
       http_response_code(501);
       die();
    }

    if(isset($_GET['action'])) {
        switch($_GET['action']) {

        case "login":
            if($_SESSION['user_session']->userloginstatus()) {
                $studentnumber = $_POST['studentnumber'];
                $password = $_POST['password'];
                $response = $_SESSION['user_session']->login($studentnumber, $password);
                http_response_code(206);
                if ($response == true) {
                    http_response_code(202);
                } else {
                    http_response_code(404);
                }
            } else {
                http_response_code(401);
            }
        break;

        case "processlogin":
            if($_SESSION['user_session']->userloginstatus()) {
                $studentnumber = $_POST['studentnumber'];
                var_dump($studentnumber);
                //$studentnumber = isset($_POST['studentnumber']) ? $_POST['studentnumber'] : 0;
                $_SESSION['user_session']->loginprocess($studentnumber);
                http_response_code(206);
            } else {
                http_response_code(401);
            }
        break;

        default:
            http_response_code(400);
        break;
            }
        }
        
?>

标签: phpajaxswitch-statementfetch

解决方案


推荐阅读