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

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

<?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


Ответы (1 шт):

Автор решения: Denis640Kb

Вы вставляете $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);
?>
→ Ссылка