Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: post запрос на сервер

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: =-=-=
OrmaJever Модератор
Отправлено: 15 Февраля, 2010 - 22:36:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Нужно отправить post запрос на сервер (к примеру вконтакте). Так что бы прошла авторизация. Как это зделать? Может какую функцию из гугла подскажите?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Мелкий Супермодератор
Отправлено: 15 Февраля, 2010 - 22:47:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




вконтакт одним постом не отделается, cURL нужен.
А просто постом отправить - http://ru.php.net/manual/en/func...-post-fields.php


-----
PostgreSQL DBA
 
 Top
OrmaJever Модератор
Отправлено: 15 Февраля, 2010 - 22:49:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




мне нужно не конкретно контакт! в контакте даные принимаются $_REQEST и там GET запрос проходит. мне нужно для другого сайта
А вот за ссылку огромное спасибо! Но почему этой функции нету на php.su?

(Отредактировано автором: 15 Февраля, 2010 - 22:55:57)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
JustUserR
Отправлено: 15 Февраля, 2010 - 23:47:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




OrmaJever пишет:
Нужно отправить post запрос на сервер Так что бы прошла авторизация Как это зделать?
Для решение вашей задачи в общем виде необходимо продеать несколько шагов - если вам нужно написать доступ к определенному сайту который бы выглядел и работал так же как будто к нему делает запрос браузер то вам необхоидмо следующее Сначала устанавлиаете программу Proxymition и на ее основе анализируете передаваемые HTTP-запросы и ответа в том числе HTTP-заголовки и пересылаемые данные
Далее с помощью CURL/sockets вы формируете похожий запрос - при этом если данные последующего запроса зависят от результатов предыдущего то прибется разбирать его строковыми функциями/регулярными выражениями
Если на запрашиваемом сайте интерфейс устроен через Iframe или AJAX или использует JS-функции для проверки браузерности - то можно попробовать распарсить их и делать соответствующие запросы - в том для разбора JS-кода можно использовать библиотеку из CGIProxy которая занимается обработкой JS-кода и его фильтрацией
OrmaJever пишет:
Но почему этой функции нету на php.su?
Потому что более общая функциональность достигается с помощью средств CURL/sockets которые широко используются для своих задач - в частности такую фунцию http_post_fields несложно написать через средства CURL и даже добавить свою функциональность

Цитата:
На вконтакт одним постом не отделается, cURL нужен.
Наверняка пользовательским соглашением запрещен разбор компонентов этого сайта - в том числе получение и анализ HTTP-запросов и ответов от него для написания PHP-скриптов автоматического взаимодейтсвия с ним путем отправки CURL-запросов на него - так что потом от ФСБ не отделаетесь Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
OrmaJever Модератор
Отправлено: 16 Февраля, 2010 - 18:17:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




за статью конешно спасибо но мне нужны конкретные примеры или функции. Я curl плохо знаю но я там не нашол функций для отправки пост запроса. Может просто логики не хватает?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Ammy
Отправлено: 16 Февраля, 2010 - 20:08:05
Post Id



Частый гость


Покинул форум
Сообщений всего: 140
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




Каждый сайт по-своему уникален, и нужно иметь определённый подход к каждому. Вам необходимо скачать любой нормальный HTTP сниффер, на основе которого начать писать свою программу. Без знаний работы HTTP протокола, и неумения пользоваться информацией, получаемой средствами использования сниффера заголовков, вы никогда не напишите нормальный граббер. И останется только искать готовые решения под конкретный интересующий вас ресурс.

(Отредактировано автором: 16 Февраля, 2010 - 20:09:06)

 
 Top
SDR
Отправлено: 16 Февраля, 2010 - 20:17:47
Post Id


Гость


Покинул форум
Сообщений всего: 72
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




OrmaJever пишет:
но мне нужны конкретные примеры или функции. Я curl плохо знаю но я там не нашол функций для отправки пост запроса.

всегда умиляли люди, которые хотят научиться пользоваться курлом, не умея пользоваться гуглом Радость

идёшь на google.com и вводишь там заветное: php curl пример post
потом нажимаешь на первую ссылку в выдаче Подмигивание


Администрации: защита от внешних переходов - глючная. прямые гугловские ссылки отображаются некорректно.

(Отредактировано автором: 16 Февраля, 2010 - 20:20:28)

 
 Top
JustUserR
Отправлено: 17 Февраля, 2010 - 17:00:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




OrmaJever пишет:
Я curl плохо знаю но я там не нашол функций для отправки пост запроса
Ну как же это не нашли ведь CURL по сути для всяческих HTTP-запорсов и предназначется - к примеру опция curl_setopt(CURLOPT_POST,1) как раз для этого
И все-таки
JustUserR пишет:
Сначала устанавлиаете программу Proxymition и на ее основе анализируете передаваемые HTTP-запросы и ответа в том числе HTTP-заголовки и пересылаемые данные
И помните что в HTTP-запросах необходимо учитывать каждое поле - потому что неучет какого-нибуль скрытого поля формы или кнопки submit можнт повлечь ошибку авторизация
Что касается вопроса эмуляции и парсера JS и запромсов Iframe и AJAX то это отдельная тема но
JustUserR пишет:
Для разбора JS-кода можно использовать библиотеку из CGIProxy которая занимается обработкой JS-кода и его фильтрацией


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
movEAX
Отправлено: 18 Февраля, 2010 - 10:24:41
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




Где-то завалялся у меня скриптик, не знаю как сейчас, но раньше работал:
PHP:
скопировать код в буфер обмена
  1. $mail = 'email';
  2. $pass = 'passwd';
  3.  
  4. $vk = curl_init('http://login.vk.com/?act=login');
  5.  
  6. curl_setopt_array($vk,array(CURLOPT_USERAGENT=>'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 WebMoney Advisor',
  7.                                                                                           CURLOPT_POST =>1,
  8.                                                                                           CURLOPT_RETURNTRANSFER =>1,
  9.                                                                                           CURLOPT_FOLLOWLOCATION=>1,
  10.                                                                                           CURLOPT_REFERER=>'http://vkontakte.ru/index.php',
  11.                                                                                           CURLOPT_POSTFIELDS=>'email='.$mail.'&pass='.$pass.'&expire=&vk='));
  12. $res = curl_exec($vk);
  13. preg_match('!value=\'(.{30,})\'!Um',$res,$SID);
  14. $SID = $SID[1]; //сессия


-----
армия.. самое убогое место
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB