четверг, 25 июня 2009 г.

Snoopy + Simple Html Dom = form submit, или элегантная отправка формы на сервер

Вот так просто и не замысловато порой удается отослать форму регистрации, при помощи двух крутейших инструментов simple html dom(парсер html) и snoopy(http клиент на php), незаменимых с нашем нелегком труде :-):

include "lib/Snoopy.class.php";
include "lib/simplehtmldom/simple_html_dom.php";

$http = new Snoopy;
$http->agent = "ТУТ АГЕНТ";
$http->referer = "http://google.com/";
//$http->rawheaders["Pragma"] = "no-cache";
$http->httpmethod = "POST";

$http->fetch("ТУТ СТРАНИЦА РЕГИСТРАЦИИ");

$dom = str_get_dom($http->results);
$f = $dom->find("form[id=aspnetForm]");
$dom2 = str_get_dom($f[0]->innertext);
foreach($dom2->find("input") as $in)
{
    $fields[@$in->attr["name"]] = @$in->attr["value"];
}
$dom2->clear();
unset($dom2);

$dom->clear();
unset($dom);

$mail = "jackajocka5@gmail.com";
$username = "albert7788";
$password = "homer12";

foreach($fields as $key => $value)
{
    //echo $key."\n";
    if(preg_match("/Username/",$key)) $fields[$key] = $username;
    if(preg_match("/Password/",$key)) $fields[$key] = $password;
    if(preg_match("/Email/",$key)) $fields[$key] = $mail;
}

$http->submit("ТУТ ACTION",$fields);
file_put_contents("dump.html",$http->results);





0 коммент.:

Отправить комментарий