Curl и отправка postfields

Статус
В этой теме нельзя размещать новые ответы.
dirdir, ответ как раз, который я искал. Из данного ответа возник еще один вопрос: в чем заключается разница, как отправлять данные? Меньше же писать просто ассоциативный массив и не указывать параметр (для чего-то же был создан вариант с кодированием массива и указанием параметра post и когда какой вариант лучше применять). В манах такой информации не видел
 
Только что проверил отправляемые заголовки при установке метода отправки curl_setopt($ch3, CURLOPT_POST, 1); и без него

В обоих случаях отправляется методом POST

Проверить отправляемые заголовки можно так
PHP:
curl_setopt($ch3, CURLINFO_HEADER_OUT, true);
$res1 = curl_exec($ch3);
print_r(curl_getinfo($ch3, CURLINFO_HEADER_OUT));
 
Разница будет в отправляемых заголовках. Сервер должен знак как придут данные. А заголовки автоматически уже проставит этот CURL - он для этого и нужен.
Либо (года массив отправляется, а точне данные разделённые на блоки)
Content-Type: multipart/form-data;

Либо заголовок будет
application/x-www-form-urlencoded

Это когда строкой поедет на сервер.

(Как заголовки посмотреть написал выше).
 
вместо $page должно конечно быть $res
Да конечно... код не тестил... делал копипаст вот и пролетел.
1332792324-clip-40kb.jpg

Вообще не проверял но надеюсь более ошибок нет :)

В манах такой информации не видел
Проглядел...
Есть по этому поводу информация..
Замечание:
Передача массива в CURLOPT_POSTFIELDS закодирует данные в виде multipart/form-data, тогда как передача URL-кодированной строки закодирует данные в виде application/x-www-form-urlencoded.​
CURLOPT_POST - Этот параметр говорит мол данные "application/x-www-form-urlencoded" и не ипет. Данный тип данных говарит о том что это простой пост запрос.
То есть если использовать CURLOPT_POSTFIELDS и передать в него масив и при этом CURLOPT_POST - true то будит и удобно задавать параметры POST запроса и его тип будит "application/x-www-form-urlencoded".
А вот если CURLOPT_POST параметра нет то будит "multipart/form-data"
Подозреваю что мой код неработает потому как там скорее всего требуется именно "multipart/form-data" и связано это с тем что там файлы можно в форме постить за счет этого тип другой.

на классе и все работает (у мня там более наворочение
Вот в этом и ошибка...
Использовать готовое это отлично но сначало нужны азы. И именно по этому сначала нужно самому тону говнокода перенаписать для того что бы потом были низкоуровневые знания.
Знать как пользоваться оберткой и знать как она работает это разные вещи.

PS. В принципе тоже самое вам сказал Для просмотра ссылки Войди или Зарегистрируйся но я постарался немного развернуть ответ для ясности.
 
Inviseble_Demon, полностью согласен с вами, если бы начал писать на сокетах то данного вопроса не возникло бы. А ответ очень подробный.
Немного отойду от темы:
Inviseble_Demon, но почему многие считают что если только начал разбираться с php то не знаю как работает класс и для чего он нужен? Логика написания кода во всех языках примерно одинаковая, разница в синтаксисе.
А посмотреть чужой код и разобраться в нем ...это полезно когда изучаешь новый язык.
Класс для работы с curl писал сам (не люблю пользоваться чужим кодом, когда можно написать самому). Если бы я не знал как работает, то не смог бы написать класс.
Как доберусь до своего компа выложу код с классом, может и вправду где то накосячил и не понимаю как работает.
 
Нашел у себя на флешке. Вот класс для работы с curl, по мере необходимости дописываю / переделываю






И вот сам мой код. Лишние данные убрал (логин, пароль, сайт:(


 
Класс для работы с curl
Для просмотра ссылки Войди или Зарегистрируйся
Бери любой и все на PHP
Проблемы в поиске этого нет.

но почему многие считают что если только начал разбираться с php то не знаю как работает класс и для чего он нужен
Да согласен выводы в познаниях сделал поспешные...

А посмотреть чужой код и разобраться в нем ...это полезно когда изучаешь новый язык.
Это всегда полезно, бОльшую часть знаний мы получаем именно от туда а не из манов.

Вот класс для работы с curl, по мере необходимости дописываю / переделываю
Все хорошо но только суть обертки как таковая утерена... Слишком многое нужно задавать...
Попробуйте либо поковырять другие класы либо переделать свой... Вам просто работать будит удобнее.
Сама прелесть обекта это то что можно задавать параметры на сесию работы. То есть изначально можно задать такие параметры как таймаут локатион печеньки и подобное. Дополнительные параметры можно делать интуетивно если масив в запросе значит порт запрос.
Более интелектуальный и удобный нужно делать... Просто задавать столько параметров для простого гет запроса это не очень удобно у вас в итоге от простой функции отличие только тем что вы задаете тону параметрои и потом используя их делаете запрос.

Это равносильно
Если просто задавать переменные и потом в функции поличить их из global
Это немного не то что вам понадобится...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху