Я пытаюсь создать остальные 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."));
}
}