PHP аргумент отсутствует, но он не пропущен, это происходит только при производстве - PullRequest
0 голосов
/ 21 июня 2020

Я писал внутренний инструмент для своей компании, и я протестировал его, и все работало правильно, но когда он оказывается на сервере, он отклоняет соединение из-за отсутствующих аргументов, это не совсем странно, потому что я закодировал это поведение, но когда я тестировал его на локальном хосте, он не вел себя так, в настоящее время мы развертываем инструменты в цифровом океане, и я получаю данные в формате JSON

    include("./request.php");
    include("./urlParams.php");
    include("./conexion.php");

    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS");
    header("Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token");
    header("Content-Type: application/json");

    error_reporting(0);
    main($conexion);

    function main($conexion){
        //$values = getParams(array( 'webinarHash', 'fecha'));
        

        $data = json_decode(file_get_contents("php://input"), true);
        
        if( !( isset($data['webinarHash']) && isset($data['fecha']) ) ){
            $response = array('message' => 'Rechazado, argumento faltante');
            http_response_code(400);
            echo json_encode($response);
            die();
        }

        $webinarHash = $data['webinarHash'];
        $date        = $data['fecha']; 

что может быть причиной отказа ??

Ответы [ 2 ]

0 голосов
/ 21 июня 2020

NVM Ребята, я обнаружил проблему, это конфигурация нашего сервера

0 голосов
/ 21 июня 2020

Это трудно сказать без дополнительного контекста.

$conexion отсутствует. Перед выполнением main($conexion); убедитесь, что он определен. Вероятно, он определен в одном из 3 включенных файлов php вверху. Возможно, код там не инициализировал переменную правильно, потому что logi c ведет себя иначе в вашей системе prod, чем на localhost.

Если данный фрагмент кода представляет полную функцию main, вы также можете удалить $conexion переменная полностью.

...