Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Отправка POST запроса на PHP скрипт

13K
10 августа 2006 года
Link90
7 / / 10.12.2005
Как это реализовать? Допустим на форме есть Едит и Кнопка, по нажатию на кнопку прога должна отправить текст введённый в Едит на скрипт (к примеру : mysite.ru/post.php), помогите пожалуйста!!!
6.8K
10 августа 2006 года
Romikgy
84 / / 28.04.2005
А с сетью какими компонентами пользуешься, имхо для твоих целей юзать Indy
354
11 августа 2006 года
ШпиЁн
468 / / 19.02.2006
Для начала надо узнать что отправляет сам браузер ;-))) ставишь программулину типа SoftX Internet Logger, запускаешь браузер, делешь все вручную, потом смотришь как это в логах записалось.

А вообще - вот примерчик POST запроса(вход в систему на яндексе)

POST /cgi-bin/Reg.pl?mode=auth&retpath=http://narod.yandex.ru/userarea/after_register.xhtml HTTP/1.0
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0
Content-Length: 86
Host: PASSPORT.YANDEX.RU
Content-Type: application/x-www-form-urlencoded

login=my_login&passwd=my_password&timestamp=1155283164060&auth_user.x=22&auth_user.y=17

После поля Сontent-Type идет пустая строка! в поле Content-Length указываешь длину твоего запроса.
PS. собираешь эту строчку и отправляешь на сервак через сокет, читаешь ответ сервера =)
246
11 августа 2006 года
GIZMO
1.8K / / 30.07.2004
[QUOTE=Link90]Как это реализовать? Допустим на форме есть Едит и Кнопка, по нажатию на кнопку прога должна отправить текст введённый в Едит на скрипт (к примеру : mysite.ru/post.php), помогите пожалуйста!!![/QUOTE]
здесь кое-что есть:
http://forum.codenet.ru/showthread.php?t=20924&highlight=InternetOpen
240
11 августа 2006 года
aks
2.5K / / 14.07.2006
[QUOTE=ШпиЁн]Для начала надо узнать что отправляет сам браузер ;-))) ставишь программулину типа SoftX Internet Logger, запускаешь браузер, делешь все вручную, потом смотришь как это в логах записалось.
[/QUOTE]
вобще то для этого есть RFC 2616 (для HTTP/1.1), где описывается HTTP протокол. Всетаки более логично изучать протокло по спецификации, а не по логам ))
354
11 августа 2006 года
ШпиЁн
468 / / 19.02.2006
Логично! :-))))))) но чтобы парень не забивал себе мозги, я показал как это сделать ПРОЩЕ и БЫСТРЕЕ ;-))) Ему ведь нужно отправить 1 запрос, а не стать гуру в http 1.1 :-)))) К тому же, неизвесто ведь что браузер передает на сервак, в коде станицы рыться чтоли? нет конечно.
13K
12 августа 2006 года
Link90
7 / / 10.12.2005
[QUOTE=ШпиЁн]собираешь эту строчку и отправляешь на сервак через сокет, читаешь ответ сервера =)[/QUOTE]
Очередной вопрос: А как это отправить? Проконнективаться я уже научился)) А отправлять не знаю как? Как простой текст?
354
12 августа 2006 года
ШпиЁн
468 / / 19.02.2006
Отправляешь через сокет как обычную строчку :-)))) и считываешь данные от сервака тоже в строку. Не забудь, после каждой строки должны стоять \r\n - это признак конца строки.

То есть примерно строки выглядят так:

POST /cgi-bin/Reg.pl?mode=auth&retpath=http://narod.yandex.ru/userarea/after_register.xhtml HTTP/1.0\r\n
Accept: */*\r\n
Accept-Language: en-us\r\n
Accept-Encoding: gzip, deflate\r\n
User-Agent: Mozilla/4.0\r\n
Content-Length: 86\r\n
Host: PASSPORT.YANDEX.RU\r\n
Content-Type: application/x-www-form-urlencoded\r\n
\r\n
login=my_login&passwd=my_password&timestamp=115528 3164060&auth_user.x=22&auth_user.y=17

Если что не ясно - могу отправить пример, но на VC++ (можно и на builder'e, но я на нем не пишу).. :-)))
13K
12 августа 2006 года
Link90
7 / / 10.12.2005
[QUOTE=ШпиЁн]Если что не ясно - могу отправить пример, но на VC++ (можно и на builder'e, но я на нем не пишу).. :-)))[/QUOTE]
Ага, буду очень признателен mail: link90 [собака] mail [точка] ru
18K
12 августа 2006 года
kirsanvi
9 / / 07.08.2006
http://www.rsdn.ru/archive/vc/issues/pvc092.htm
а через wininet нельзя также сделать разве?
и мне бы тоже тот примерчик хотелось бы получить, нельзя его на форуме выложить?
354
13 августа 2006 года
ШпиЁн
468 / / 19.02.2006
и через wininet конечно можно, даже проще в чем-то! :-)))) но я с ним никогда особо не работал, и предпочитаю всё делать ручками.

программка написана на VC++, в Builder'e я не особо... Там даже проще все можно сделать.

Суть программки - она стучится на passport.yandex.ru, и отправляет данные, наподобие тех, что пользователь вводит на вэб-форме при входе в систему. Она покажет нам что она отправляет ;-))) Далее она читает ответ от сервера, вначале заголовок.

----------маленькое отступление-----------------
В заголовке есть весьма интересное поле Set-Cookie: ... Это нужно выцепить из заголовка, и отправлять на сервер далее через поле Cookie: (этот куки дает серверу понять что мы авторизированы). Вероятно, что тебе тоже придется работать с этим полем.
--------------------------------------------------

Далее прога читает само тело страницы, и покажет его как оно есть, в html кодах. Кстати, можно саму страницу и не грузить.

:-))))

PS. Ночью на яндексе надо вводить еще и контрольные цифры(иногда), и прога работать не будет. Проверяй днем. ;)
18K
14 августа 2006 года
kirsanvi
9 / / 07.08.2006
Самое интересное в этом, что практически во всем разобрался, кроме того как вообще правильно составлять запрос post ... вот какой именно должен быть пакет пока не ясно, где можно найти эту информацию но именно для синтаксиса С++
Можно просто ссылки на статьи где написано про это.
354
14 августа 2006 года
ШпиЁн
468 / / 19.02.2006
RFC по http найти можно где угодно. но у меня статейка на русском;)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог