К списку форумов К списку вопросов
Скрипт заполнения форм
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 указывают ей адресс странички.

К списку вопросов на форуме Веб-дизайн

>>