хочу передать пост запрос на определенный сайт , он выглядит так : name=тут имя & message= тут сообщение & id=тут индефикатор . id генерируется каждый раз разный , как его узнать ?
Кем генерируется? У него и узнай. Пост-запрос имеет такой вид: Code: $post = "name=$name&mess=$mess&id=$id"; $len = strlen($post); $query = "POST /go.php HTTP/1.1\r\n". "User-Agent: Mozillko\r\n". "Host: host.com\r\n". "Referer: http://host.com\r\n". "Content-Type: application/x-www-form-urlencoded\r\n". "Connection: close\r\n". "Content-Length: $len\r\n". "\r\n". "$post";
Code: use LWP::UserAgent; use HTTP::Request; $url = "http://site.ru"; $ua = LWP::UserAgent->new(); $req = HTTP::Request->new (POST => $url); $req->content_type ("application/x-www-form-urlencoded"); $req->content ("name=IMYA&message=MESSAGE&id=ID"); $res = $ua->request($req); die "Error: " . $res->status_line unless ($res->is_success); $content = $res->content; .... Если id - каптча, то нужно искать антикаптчу (если повезет, найдете)
http://paste.org.ru/?s3rkdn кто может переделать скрипт так что бы он отправлял ? на примере проще гораздо просто
Сначала обратиться к странице и узнать id Найти его так: PHP: <?php $site = file_get_contents('/'); preg_match("#<div>(.*)</div>#isU", $site, $out); echo $out['1']; // Это твой id ?> <div> - Это тэг или какой-то код который идет до определения id на странице, а </div> это тег или кусок кода, который идет после определения id на странице... далее делаешь пост запрос, что показан выше с этим $id
речь случайно не про гостевую на том сайте? http://www.kyky.altnet.ru/guest/write.php куда проще зафлудить, тем более там активная xss (но кавычки фильтрует)
2all !! примеры , отрывки кода и т.д. и т.п. только на PERL ! imajo.ati да про ту , я знаю - просто использую как пример
именно для данного случая этот ид совсем не нужен. он не привязан ни к чему, а потому это просто число. одно из чисел, которые сервер принимает за валидные. проще сохранить форму на хард и наштамповать посты яваскриптом.
у кого нибудь будет ответ который нужен мне ? как узнать id , плз пишите на примере , ЯП обязательно перл !
$p01nt я ещё раз повторюсь. id постоянный он не генерируется. посмотри. 41c3c0244c353 сколько страницу не обновляй id будет один и тот же. имхо неудачный пример для тренировки а на твой вопрос уже ответил Isis, пост №8
PHP: use LWP::UserAgent; my $ua = LWP::UserAgent->new(); my $res = $ua->post($url, [ 'param1' => 'val1', 'param2' => 'val2', ], 'header1' => 'val1', 'header2' => 'val2', ); etc
Пиф он имел регулярку ^^ Php: PHP: $site = file_get_contents('/'); preg_match("#<div>(.*)</div>#isU", $site, $out); echo $out['1']; // Это твой id Perl: (Покажу напримера файла) Сделал файл page.html с содержанием: HTML: <html> <head> <title>PERL regexp</title> </head> <body> <h1>File where I serach text</h1> <DIV>I NEED THIS TEXT</DIV> </body> </html> Тут I NEED THIS TEXT то что нам надо искать... Вот perl скрипт: PHP: #!/usr/bin/perl open(DATAFILE, "scr/page.html") || die "Cannot open DATAFILE"; while(defined($file = <DATAFILE>)) { if($file=~m%(<DIV>(.*)</DIV>)%igs) { $file=~s%(<DIV>(.*)</DIV>)%%igs; print "Result: $2"; } } Запустил, результат:
PHP: #!/usr/bin/perl -w #вроде этот ключ исправляет некоторые ошибки в коде open(DATAFILE, "scr/page.html") || die "Cannot open DATAFILE"; while(<DATAFILE>) { if(m/<A>(.+)<(backslash)/A>/igs) { s/<A>(.+)<(backslash)/A>/igs; print "Result: ".$_; } } close(DATAFILE); ^^