[Perl] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. iveyk

    iveyk New Member

    Joined:
    17 Jun 2007
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Добавил, теперь ошибки невыбрасывает, как я понимаю этот добавленный код недопустил ошибки и закончил работу скрипта, а мне хотелосьбы не обрабатывать ошибку во время интерпретации, а понять что за ошибка, откуда она и как сделать чтобы скрипт работал :(
     
  2. cr0w

    cr0w Elder - Старейшина

    Joined:
    11 Sep 2008
    Messages:
    92
    Likes Received:
    141
    Reputations:
    33
    Я ж тебе объясняю, что ошибка в том, что сокет может и не создаться, а скрипт это не проверяет и пытается отправлять в него данные.
    Я привел очень примерный код обработки ошибок при создании сокета. Код я тот уже слегка поправил - теперь там просто рекурсивный вызов поточной функции, а затем завершение потока. Вообще, рекурсия здесь далеко не лучшее решение, т.к. она может получиться очень глубокой. Поэтому лучше сделать как-то так:
    Code:
    my $sock;
    while (!$sock) {$sock = IO::Socket::INET->new(Proto=>'tcp',PeerAddr=>"http://".$prefix.".mail.ru",PeerPort=>80) or sleep(1)}
    add: А еще лучше счетчик числа попыток подключений туда добавить, а то сервер может уйти в даун/забанить/и т.д., а скрипт будет зазря работать в бесконечном цикле. Сам разберешься с этим или помочь? (;
     
    #1162 cr0w, 9 Sep 2009
    Last edited: 10 Sep 2009
  3. iveyk

    iveyk New Member

    Joined:
    17 Jun 2007
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Помочь, если не трудно :) я так понимаю у меня ни один сокет несоздаётся :( т.к. perl в инет даже невыходит
     
  4. iveyk

    iveyk New Member

    Joined:
    17 Jun 2007
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    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";
     
  5. cr0w

    cr0w Elder - Старейшина

    Joined:
    11 Sep 2008
    Messages:
    92
    Likes Received:
    141
    Reputations:
    33
    Проверь что-ли настройки файрволла. Вот скриптик:
    Code:
    use LWP::Simple; print get('http://mail.ru')
    - должен возвращать код страницы сайта, если все норм.

    Это видно из твоего первого сообщения... :)
     
  6. BlackSun

    BlackSun Banned

    Joined:
    1 Apr 2007
    Messages:
    989
    Likes Received:
    1,168
    Reputations:
    446
    Есть следующий кодес:
    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? С перлом не дружу ..
     
  7. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    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.
     
    _________________________
    1 person likes this.
  8. BlackSun

    BlackSun Banned

    Joined:
    1 Apr 2007
    Messages:
    989
    Likes Received:
    1,168
    Reputations:
    446
    Это именно используется самой функцией execute? Ибо я не пишу скрипт, меня больше интересует возможность провести скуль-иньекцию в том коде)
     
  9. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Если в коде не используется quote, то видимо нет
     
    _________________________
  10. bl00m

    bl00m New Member

    Joined:
    16 May 2009
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    помогите, пожалуйста, написать парсер для строки, который удаляет все слова заданной длины, начинающиеся на согласную букву?
     
  11. PvgValo

    PvgValo Active Member

    Joined:
    1 Aug 2009
    Messages:
    548
    Likes Received:
    160
    Reputations:
    57
    bl00m, помочь или сделать за тебя?
     
  12. demond

    demond Member

    Joined:
    5 Nov 2008
    Messages:
    101
    Likes Received:
    22
    Reputations:
    5
    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
    Сам сможешь изменить на то что нужно?
     
  13. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Как-то так примерно
    Code:
    s/\b[qwrtypsdfghjklzxcvbnm]\w{3}\b//g;
    
     
  14. [EYFORIYA]

    [EYFORIYA] Member

    Joined:
    27 Apr 2009
    Messages:
    8
    Likes Received:
    9
    Reputations:
    0
    Пожалуйсто выскажите свое мнение,по какой книге лучше всего учиться перлу...
    я так понял перл за 24 часа не канает, какой наилучший вариент..?
     
  15. TheSoul

    TheSoul Elder - Старейшина

    Joined:
    12 Nov 2007
    Messages:
    83
    Likes Received:
    35
    Reputations:
    0
    Попробуй по этой http://sovremennik.ws/computer/2268-perl.-specialnyjj-spravochnik.html д мне понравилась.
     
  16. Winst0n

    Winst0n Elder - Старейшина

    Joined:
    19 Aug 2008
    Messages:
    92
    Likes Received:
    5
    Reputations:
    0
    как 1254190834 конвертировать в нормальную дату ?
     
  17. demond

    demond Member

    Joined:
    5 Nov 2008
    Messages:
    101
    Likes Received:
    22
    Reputations:
    5
    Code:
    perl -e '($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(1254190834); print $hour.":".$min.":".$sec." ".$mday."-".$mon."-".($year+1900);';
    
     
  18. mr.4k

    mr.4k New Member

    Joined:
    22 Dec 2008
    Messages:
    33
    Likes Received:
    0
    Reputations:
    0
    Вот рабочий кусок скрипта (спасибо ачатовцам), который логинится на 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>&nbsp;</strong>&nbsp;<class="cursor_hand" onclick="comment_controller_782873.getPage(2);"</a>&nbsp;&nbsp;

    <
    class="cursor_hand" onclick="comment_controller_782873.getPage(3);"</a>&nbsp;&nbsp;

    <
    class="cursor_hand" onclick="comment_controller_782873.getPage(4);"</a>&nbsp;&nbsp;

    <
    class="cursor_hand" onclick="comment_controller_782873.getPage(5);">...</a>&nbsp;</span>
    реально ди это?
     
  19. demond

    demond Member

    Joined:
    5 Nov 2008
    Messages:
    101
    Likes Received:
    22
    Reputations:
    5
    Попробуй WWW::Mechanize::plugin::JavaScript , Может это тебе поможет. Либо раскручивать этот javascript в ручную (как я делал в свое время) и реализовывать такую функцию на perl.
     
  20. zer0ska

    zer0ska Elder - Старейшина

    Joined:
    5 Dec 2007
    Messages:
    103
    Likes Received:
    9
    Reputations:
    0
    отснифай и имитируй тожесамое
     
Thread Status:
Not open for further replies.