Мне было интересно, как один авто заполняет несколько форм (используя bot/local server
) на нескольких страницах внешнего сайта (PHP) с помощью ajax или curl.
Например, сайт www.abc.com/index.php
имеет форму <form> <input name='text'></form>
которая доставит вас на сайт www.abc.com/fst.php
при www.abc.com/fst.php
формы и на сайте www.abc.com/fst.php
есть другая форма, которая также должна быть заполнена и отправлена. Я хочу автоматически заполнить обе формы с моего локального сервера. Как это сделать?
Самый простой способ – использовать что-то вроде greasemonkey ( https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ ), но лучшим решением является использование вкладки «net» firebug для захвата отправленной почты когда вы заполняете форму и повторяете эту запись с помощью CURL ( http://php.net/manual/en/book.curl.php )
function post($url,$data) { $process = curl_init($url); curl_setopt($process, CURLOPT_HTTPHEADER, $this->headers); curl_setopt($process, CURLOPT_HEADER, 1); curl_setopt($process, CURLOPT_USERAGENT, $this->user_agent); if ($this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEFILE, $this->cookie_file); if ($this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEJAR, $this->cookie_file); curl_setopt($process, CURLOPT_ENCODING , $this->compression); curl_setopt($process, CURLOPT_TIMEOUT, 30); if ($this->proxy) curl_setopt($process, CURLOPT_PROXY, $this->proxy); curl_setopt($process, CURLOPT_POSTFIELDS, $data); curl_setopt($process, CURLOPT_RETURNTRANSFER, 1); curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($process, CURLOPT_POST, 1); $return = curl_exec($process); curl_close($process); return $return; }