CURL ошибка при отправке параметров GET

253
08 августа 2017, 17:16

Отправляю GET запрос CURLом, для добавления данных в гугл диск. Если ввожу данные в запросе вручную(конкретные строки), то все ок, запрос проходит и добавляет данные в таблицу, при этом если указываю переменные в запросе то выдает ошибку:

  1. That’s an error.

Your client has issued a malformed or illegal request. That’s all we know.

Вот код отправки:

if ($curl = curl_init()) {
    $urls = 'https://script.google.com/macros/s/id-table/exec?p1='.$action.'&p2='.$date.'&p3='.$time.'&p4='.$operator.'&p5='.$vx.'&p6='.$chanel.'&p7='.$phone.'&p8='.$type.'&p9='.$reason.'&p10='.$name.'&p11='.$cities.'&p12='.$broker;
    curl_setopt($curl, CURLOPT_URL, $urls);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
    $out = curl_exec($curl);
    echo $out;
    curl_close($curl);
}
Answer 1

Лучшим вариантом было бы пользоваться функцией http_build_query, которая именно для решения вашей проблемы предназначена:

$urls = 'https://script.google.com/macros/s/id-table/exec?'.http_build_query([
    'p1' => $action,
    'p2' => $date,
    'p3' => $time,
    // и так далее
]);
Answer 2

В общем проблема была в пробелах и в русских символах, решил вот так:

urlencode($переменная)
READ ALSO
Нужно отправить файл через form

Нужно отправить файл через form

Нужно отправить файл через форму на сайтеСделать надо через php, то есть:

261
Выбор часового пояса с помощью select

Выбор часового пояса с помощью select

Здравствуйте! Есть сайт где администратор сам может указывать часовой пояс, как это показано на картинкеПосле этого на сайте отображается...

315
Как реализовать каррирование в PHP

Как реализовать каррирование в PHP

Пусть у меня есть анонимная функция

612
Foreach реализация функций php

Foreach реализация функций php

Доброго времени суток, если имеется массив

449