![]() |
![]() |
Cool 21.03.2004 - 18:44 | Люди, подскажите где есть пример скрипта на ПХП, который заполнит указанную форму указанными данными. Я что-то никак вообще не включусь как такое сделать. Предполагаю что надо каким-то образом сформировать запрос к серверу и через сокеты попробовать передать. Но по каким правилам формировать запрос я что-то опять не соображу. Буду признателен за любую информацию |
Cool 1 - 21.03.2004 - 19:04 |
Сорри, в порыве поиска ответа на вопрос не полностью описал сам вопрос :( Итак, ТЗ: Есть некий сайт, на котором есть форма, в которую параметры передаются методом POST. Их обрабатывает ASP шный скрипт. Мне необходимо, скриптом написанным на PHP многократно заполнить эту форму и отправить данные обработчику. Так как метод передачи POST, то вариант передачи через адресную строку отпадает. Нарисовать страничку с такими же полнями, только action поменять на имя сайта, а потом сидеть и тыкать Submit мне не охота. Хочу запустить скрипт на PHP и сколько раз он за свои 30 секунд успеет форму заполнить и отправить, столько и нормально. Вот, теперь вроде более ясно |
Уверенный 2 - 21.03.2004 - 23:35 |
На перле - пожалуйста. use HTML::Form; $form = HTML::Form->parse($html, $base_uri); $form->value(query => "Perl"); $form->click("Search"); |
Уверенный 3 - 21.03.2004 - 23:39 |
Точнее, вместо последней строки надо написать: use LWP; LWP::UserAgent->new->request($form->click); А вообще, смотри http://www.perldoc.com/perl5.8.0/lib/HTML/Form.html |
Alexander Smith 4 - 22.03.2004 - 00:19 |
#2,3 - лучше use HTTP::Request::Common qw(POST); use LWP::UserAgent; #в полном комплекте lib-www(Perl) - возможности получаются мощнее. |
Уверенный 5 - 22.03.2004 - 00:26 |
Да, а кто будет форму парсить? :) Интересно, наверняка на PHP есть аналогичные библиотеки? |
hotspa 6 - 22.03.2004 - 05:24 |
используй циклы, в теле цикла - все команды for ($i=1; $i=30; $i++) { тело цикла } если 30 секунд тебе мало, используй соответствующую функцию, не помню точно, как она называется, но она есть в пхп |
Уверенный 7 - 22.03.2004 - 08:51 | А что за прикол с 30 секундами? Это в каком стандарте такое? Уже не первый раз тут встречаю упоминание по 30 секунд, правда, все время в связи с PHP. |
Mips 8 - 22.03.2004 - 09:10 |
30 секунд - это дефолтное время выполнения скрипта. Его, кстати, можно поменять (set_time_limit). Что касается формы, создавай её с помощью пхп на своём сервере, у INPUT'ов есть параметр value. Вот в него и записывай нужные данные. Практически на любом платном хостинге есть cron, что позволит тебе выполнять скрипт сколько угодно раз, даже когда ты спишь ;) ps: Хотя, чую одним местом, что это что-то типа спама SMS'ками. И это нехорошо. При желании оператов сотовой связи может потребовать админа хостинга разобраться со спамером, но админ разбираться вряд ли станет, а просто прикроет тебе хостинг без возмещения денег. |
Bulbazavr 9 - 22.03.2004 - 09:42 |
<? flush(); $host="192.168.1.1"; $url="/receiver.asp"; $param1="param1"; $param2="param2"; $param3="param3"; $param4="param4"; $PostData= "param1=".urlencode($param1)."&". "param2=".urlencode($param2)."&". "param3=".urlencode($param3)."&". "param4=".urlencode($param4); $len=strlen($PostData); $nn="\r\n"; $zapros= "POST $url HTTP/1.0".$nn. "Referer: $ref".$nn. "Content-Type: application/x-www-form-urlencoded".$nn. "Content-Length: $len".$nn. "Host: $host".$nn. "Accept: */*".$nn. "Accept-Encoding: gzip, deflate".$nn. "Connection: Keep-Alive".$nn. "User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)".$nn. "".$nn. "$PostData"; // echo $zapros."\n\n-------------\n\n\n"; flush(); $fp = fsockopen("$host", 80, &$errno, &$errstr, 30); if(!$fp) { print "$errstr ($errno)<br>\n"; exit; } fputs($fp,$zapros); fclose($fp); ?> |
Cool 10 - 22.03.2004 - 16:59 |
Bulbazavr, спасиб :) я уже именно так и сделал :) Mips, хостинг у меня бесплатный, так что кроном и не пахло... а спамеров я не люблю сам, так что ни о каком спаме тут речи не идет |
Mips 11 - 22.03.2004 - 17:06 | Cool, тогда просвети для чего тебе это? ;) |
Cool 12 - 22.03.2004 - 19:35 | Да есть тут один сайт, на котором есть голо-совалка... вот надо было поголосовать... ;) |
Mips 13 - 22.03.2004 - 21:25 |
скрытый фрейм с отправкой формы и делов-то... Юзеры сами "наГолоСуют" :) ps: в нормальных голосовалках проверяется чтобы с одного компа не голосовали дважды. Вариант с фреймом - лучший выход имхо. |
Cool 14 - 23.03.2004 - 13:52 | сейчас вообще народ некоторый начал борзеть со скрытыми фреймами. Полным-полно игр в стиле GanjaWars где у каждого игрока свой id и чем больше пользователей зайдет на его страничку, тем больше денег он получит. так суют эти скрытые фреймы, куда ни попадя. Некоторые еще суют картинку размерами 0х0 и в src указывают ей адресс странички. |