Добавил, теперь ошибки невыбрасывает, как я понимаю этот добавленный код недопустил ошибки и закончил работу скрипта, а мне хотелосьбы не обрабатывать ошибку во время интерпретации, а понять что за ошибка, откуда она и как сделать чтобы скрипт работал
Я ж тебе объясняю, что ошибка в том, что сокет может и не создаться, а скрипт это не проверяет и пытается отправлять в него данные. Я привел очень примерный код обработки ошибок при создании сокета. Код я тот уже слегка поправил - теперь там просто рекурсивный вызов поточной функции, а затем завершение потока. Вообще, рекурсия здесь далеко не лучшее решение, т.к. она может получиться очень глубокой. Поэтому лучше сделать как-то так: Code: my $sock; while (!$sock) {$sock = IO::Socket::INET->new(Proto=>'tcp',PeerAddr=>"http://".$prefix.".mail.ru",PeerPort=>80) or sleep(1)} add: А еще лучше счетчик числа попыток подключений туда добавить, а то сервер может уйти в даун/забанить/и т.д., а скрипт будет зазря работать в бесконечном цикле. Сам разберешься с этим или помочь? (;
Помочь, если не трудно я так понимаю у меня ни один сокет несоздаётся т.к. perl в инет даже невыходит
p.s. мне пишет что ошибка возникает в этой строке: Code: print $sock "HEAD http://".$prefix.".mail.ru/login.php?username=".$login."&password=".$pass." HTTP/1.0\r\n". "Host: ".$prefix.".mail.ru\r\n". "Accept: */*\r\n". "Content-Type: application/x-www-form-urlencoded\r\n". "User-Agent: ".$agents[$random]."\r\n". "Connection: close\r\n\r\n";
Проверь что-ли настройки файрволла. Вот скриптик: Code: use LWP::Simple; print get('http://mail.ru') - должен возвращать код страницы сайта, если все норм. Это видно из твоего первого сообщения...
Есть следующий кодес: Code: my $q=new CGI; $dbh = DBI->connect(.. my $uid=($q->cookie('uid') or ''); my $sth = $dbh->prepare("SELECT id,cust_id FROM ad_session WHERE id=? AND ip=? AND useragent=?"); $sth->execute($uid, $ENV{REMOTE_ADDR}, $ENV{HTTP_USER_AGENT}); Интересует, есть ли в функции DBI::execute аналог addslashes \ mysql_escape \ etc? С перлом не дружу ..
quote $sql = $dbh->quote($value); $sql = $dbh->quote($value, $data_type); Quote a string literal for use as a literal value in an SQL statement, by escaping any special characters (such as quotation marks) contained within the string and adding the required type of outer quotation marks.
Это именно используется самой функцией execute? Ибо я не пишу скрипт, меня больше интересует возможность провести скуль-иньекцию в том коде)
помогите, пожалуйста, написать парсер для строки, который удаляет все слова заданной длины, начинающиеся на согласную букву?
bl00m, Code: #!/usr/bin/perl $data = 'qesde fefs sdfsdf sdfsd eded'; $data =~ s/\s[^aei]\w{3}\s/ /img; print $data удаляет слова длинной 4, который не начинаются на a или e или i Сам сможешь изменить на то что нужно?
Пожалуйсто выскажите свое мнение,по какой книге лучше всего учиться перлу... я так понял перл за 24 часа не канает, какой наилучший вариент..?
Попробуй по этой http://sovremennik.ws/computer/2268-perl.-specialnyjj-spravochnik.html д мне понравилась.
Code: perl -e '($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(1254190834); print $hour.":".$min.":".$sec." ".$mday."-".$mon."-".($year+1900);';
Вот рабочий кусок скрипта (спасибо ачатовцам), который логинится на pornhub.com и заходит на страничку юзера (www.pornhub.com/user/1041276). PHP: #!/usr/bin/perl use LWP::UserAgent; use URI::Escape; sub login { $user = $_[0]; $pass =$_[1]; $ua = LWP::UserAgent->new ('agent' => 'Mozilla/4.0 (compatible; Windows 5.1)'); $ua->cookie_jar ({}); #log in my $r = $ua->post ('http://www.pornhub.com/login', 'Referer' => 'http://www.pornhub.com/login', Content => [ 'username' => $user, 'password' => $pass, 'remember_me' => 1 ]); if ($r->status_line eq '302 Found') { print $user." logged in\n"; } else { print $user." login failed\n"; } } sub pizd{ $r = $ua->get($_[0]); if ($r->content =~ /Wall/) { print "wall content is ok \n"; #landed ok } else { print "no wall found \n"; } } login("Atisa","sooper"); pizd ("http://www.pornhub.com/user/1041276"); на странице юзера есть такой ЯВАСКРИП. Нужно запустить обработчик onclick="comment_controller******* для того, чтоб перейти на след страничку внутри профайла. PHP: <span><strong> 1 </strong> <a class="cursor_hand" onclick="comment_controller_782873.getPage(2);"> 2 </a> <a class="cursor_hand" onclick="comment_controller_782873.getPage(3);"> 3 </a> <a class="cursor_hand" onclick="comment_controller_782873.getPage(4);"> 4 </a> <a class="cursor_hand" onclick="comment_controller_782873.getPage(5);">...</a> </span> реально ди это?
Попробуй WWW::Mechanize:lugin::JavaScript , Может это тебе поможет. Либо раскручивать этот javascript в ручную (как я делал в свое время) и реализовывать такую функцию на perl.