Ошибка при запросе API Cloudflare. Почему?

144
26 марта 2022, 22:50

когда я запускаю следующий код:

<?php
$ch = curl_init();
$name = $_POST["name"];
curl_setopt($ch, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones/$name/settings/ipv6');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"value\":\"off\"}");
$headers = array();
$headers[] = 'X-Auth-Email: nh*****@gmail.com';
$headers[] = 'X-Auth-Key: 99c22d******c9948f128***9b8';
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
var_dump($result);
curl_close($ch);
?>

Я получаю в ответ:

"{“success”:false,“errors”:[{“code”:7000,“message”:“No route for that URI”}],“messages”:[],“result”:null}"

$name мне нужно получить из формы, которая выглядит так:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Простая форма</title>
</head>
<body>
<form action="test.php" method="post">
  <p>Ввести ZoneId:<br>
    Имя: <input type="text"  name="name"><br>
    <input type="submit">
  </p>
</form>
</body>
</html> 

Где моя ошибка?

Если сделать запрос curl_setopt($ch, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones/7987974565154/settings/ipv6'); т.е если указать (7987974565154) вручную, то все работает корректно.

Я так понимаю, что я не правильно работаю c $name

Answer 1

Вы вставляете $name как текст, вставляйте как переменную.
Вот так:

<?php
$ch = curl_init();
$name = $_POST["name"];
curl_setopt($ch, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones/'.$name.'/settings/ipv6');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"value\":\"off\"}");
$headers = array();
$headers[] = 'X-Auth-Email: nh*****@gmail.com';
$headers[] = 'X-Auth-Key: 99c22d******c9948f128***9b8';
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
var_dump($result);
curl_close($ch);
?>
READ ALSO
Задал условия в php

Задал условия в php

Задал условия в php - if и else но, почему то if выводится как надо по условию а else всегда выводится, что не так ? В моём случае выводится "да нет ошибся!"

80
Нужно изменить размер изображения на сервере php

Нужно изменить размер изображения на сервере php

Есть задача - менять размер изображения, чтобы оно было пропорциаонльно (квадратное)Только дело в том, что его нужно не кропить, а приращивать...

84
Валидация через Callback в Symfony

Валидация через Callback в Symfony

каким образом можно в анотациях корректно указать кастомную функцию валидациивариант из доки не проходит

115
Как парсить JSON и вывести результат на PHP?

Как парсить JSON и вывести результат на PHP?

При выполнении следующего кода:

125