Не удается собрать тело из запроса PUT и отправить его в базу данных - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь создать остальные API в php и возникли проблемы с запросом PUT. Я использую

parse_str(file_get_contents("php://input"), $post_vars);
    $marca = $post_vars["marca"];
    $link = $post_vars["link"];

и получите эту ошибку:

Notice: Undefined index: marca in 
D:\PHP\htdocs\ExLab3.2\application\Controller\BecuriController.php on line 64

Notice: Undefined index: link in 
D:\PHP\htdocs\ExLab3.2\application\Controller\BecuriController.php on line 65

Используйте почтальон для отправки запроса. Мне удалось напечатать на экране $ post_vars и получить эту форму:

Array ( [----------------------------622495270320150137483080 Content-    Disposition:_form-data;_name] => "marca" new mark ----------------------------622495270320150137483080 Content-Disposition: form-data; name="capacitate" 12 ----------------------------622495270320150137483080 Content-Disposition: form-data; name="link" new link ----------------------------622495270320150137483080 Content-Disposition: form-data; name="bec_id" 2 ----------------------------622495270320150137483080-- )

Мне не удается закодировать в json для помещения в переменную.

$id = $post_vars["bec_id"];

Это моя функция для запроса на ручную ставку:

public function handle_put()
{
    parse_str(file_get_contents("php://input"), $post_vars);
    $marca = $post_vars["marca"];
    $link = $post_vars["link"];

    print_r($post_vars);
    if (!empty($_POST["marca"]) && !empty($_POST["capacitate"]) && !empty($_POST["link"]) && !empty($_POST["bec_id"]) && ctype_alpha($_POST["marca"]) && ctype_digit($_POST["capacitate"]) && ctype_alpha($_POST["link"])) {
        $bec_model = new BecuriModel();
        $bec_model->update_bec(
            $_POST["marca"],
            $_POST["capacitate"],
            $_POST["link"],
            $_POST['bec_id']
        );
        $response = array(
            'id'     => htmlentities($_POST["bec_id"]),
            'marca' => htmlentities($_POST["marca"]),
            'capacitate'  => htmlentities($_POST["capacitate"]),
            'link'   => htmlentities($_POST["link"])
        );
        return $response;
    } else {
        http_response_code(400);
        echo json_encode(array("message" => "Eroare."));
    }
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...