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

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

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

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Вроде правильно, если нет ошибок синтаксиса. Если сомневаетесь, вооружитесь снифером и проверьте, те ли заголовки отправляет ваш скрипт
     
  2. biophreak

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

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Проверь получаемый статус.
     
  3. winflip

    winflip New Member

    Joined:
    13 May 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    0
    Да не в этом ошибка. Разобрался
     
  4. [Online]

    [Online] New Member

    Joined:
    18 Nov 2009
    Messages:
    0
    Likes Received:
    2
    Reputations:
    0
    Кто подскажет мне 2 вопроса ?)
    Как вывести все эл-ты массива ?
    И нужен скрипт пхп для проверки пр)
     
    2 people like this.
  5. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Например
    Code:
    print "@arr\n";
    print join ', ' => @arr;
    print for @arr;
    
    Задайте вопрос в соответствующей теме либо поищите в "Полезных скриптах"
     
  6. intNet

    intNet Member

    Joined:
    31 May 2009
    Messages:
    29
    Likes Received:
    14
    Reputations:
    5
    Как отсюда вычленить имя хоста? Своя регулярка не пашет, хз почему:
    Code:
    $akk = "ftp://Mosbuild:A_coQd2X@ftp.ite-expo.ru";
    if($akk =~ /\@[^ ]*/) {print "$1\n";}
    
     
  7. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    /^ftp:\/\/?(.*):(.*)\@(.*):(\d+)/i

    чтобы узреть регулярку нажми quote
     
    1 person likes this.
  8. rdrule

    rdrule New Member

    Joined:
    4 Mar 2009
    Messages:
    0
    Likes Received:
    3
    Reputations:
    0
    my $akk = "ftp://Mosbuild:A_coQd2X\@ftp.ite-expo.ru"; #или брать в одинарные кавычки
    if($akk =~ /\@[^ ]*/) {print $&, "\n";}
     
    1 person likes this.
  9. intNet

    intNet Member

    Joined:
    31 May 2009
    Messages:
    29
    Likes Received:
    14
    Reputations:
    5
    Уже разобрался, всё оказалось предельно просто.
    Спасибо всем.
     
  10. winflip

    winflip New Member

    Joined:
    13 May 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    0
    Привет ачат. Я опять про LWP. Сори если надоел, но почему при редиректе(внешнем) теряются cookie, которые просит установить сервер до редиректа. Например:
    Code:
    my $ua = LWP::UserAgent->new;
        my $response = $ua->get("http://www.liex.ru/".$link,
      						'Accept' => 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
      						'Accept-Language' => 'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
      						'Accept-Encoding'        => 'gzip,deflate',
     						'Accept-Charset'         => 'windows-1251,utf-8;q=0.7,*;q=0.7',
      						'Connection'             => 'close');
        my %cookies = $response->header('Set-Cookie');
    
    Вместо $link можно поставить winflip.htm. Когда я работал с сокетами выходило двое кук JSESSIONID и referral, а теперь токо JSESSIONID, а мне больше referral нужен. В общем помогите.
     
  11. winflip

    winflip New Member

    Joined:
    13 May 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    0
    Мда.. Недочитал))))
     
    1 person likes this.
  12. papillon

    papillon New Member

    Joined:
    24 Oct 2009
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Здрасте, вам. Я решил начать изучать (решительно) Perl. Но вот только,я не как не могу разобраться в нем. Прошу помощи у умов. Начну с начала. Во первых у меня windows xp, скачал книгу "изучаем perl", установил программу "Perl express 2.4.5". Но в книге по ходу скрипты которые прога не понимает. По этому устанол другую програму "ActivePerl-5.10.1.1006-MSWin32-x86-291086.msi". Ну вобщем я ее даже запустить не смог.
    Я так понимаю тема для новичков, по этому прошу не смеяться.
    И вообще подскажите как начать изучения языка с нуля. Какие книги нужны, компиляторы, с чего наченали Вы?
    Буду очень благодарен.
     
  13. winflip

    winflip New Member

    Joined:
    13 May 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    0
    Сразу на заметку Perl - не компилятор, а интерпретатор.
    Лично у меня на windows стоит indigoperl.(indigostar.com кажись).
    А "библией" по perl является знаменитая книга http://www.books.ru/shop/books/11085
     
  14. ixtor1

    ixtor1 Active Member

    Joined:
    25 Oct 2009
    Messages:
    108
    Likes Received:
    122
    Reputations:
    -7
    также инетересен вопрос,а если у меня 7 то тоже самое все абсолютно подойдет?papillon плис напишишь в пм если у тебя получилось :rolleyes: парни все также на 7..
     
  15. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Читайте кэмел-бук и другие книги.
     
  16. anubis666

    anubis666 New Member

    Joined:
    17 Aug 2009
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте помогите пожалуйста как с помощью unlink удалить все файлы в директории которые содержат в имени символы avi,mpeg,flv,jpg?
     
  17. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Что-то в этом роде
    Code:
    opendir (...);
    while ($file = readdir(...)) {
      unlink $file if $file =~ /\.(avi|mpeg|flv|jpg)$/;
    }
    closedir (...);
    
     
  18. TheSoul

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

    Joined:
    12 Nov 2007
    Messages:
    83
    Likes Received:
    35
    Reputations:
    0
    запускай его в папке где их надо удалить.

    #!/usr/bin/perl -w

    @rash = ('jpg', 'mpeg', 'avi', 'flv');

    foreach $file (@rash){unlink <*.$file>;}
     
  19. winflip

    winflip New Member

    Joined:
    13 May 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    0
    Скажите плиз. Модуль Net::OSCAR ещё живой? :confused: А то может после 101 смены протокола ICQ он и вовсе нерабочий :mad: . Собственно авторизация и принятие сообщений работает, а вот отправка не хочет:
    Code:
    use CGI::Carp qw(fatalsToBrowser);
    print "Content-Type: text/html\n\n";
    use Net::OSCAR qw(:standard);
    $uin="сюда я вписываю юин";
    $password="Здесь пароль";
    sub im_in {
    	my($oscar, $sender, $message, $is_away) = @_;
    	print "[AWAY] " if $is_away;
    	$oscar->signoff;
    }
    $oscar = Net::OSCAR->new();
    $oscar->set_callback_im_in(\&im_in);
    $oscar->signon($uin, $password);
    $oscar->send_im('Здесь юин получателя', 'fnjh');
    while(1) {
    $oscar->do_one_loop();
    }
     
    #1319 winflip, 1 Dec 2009
    Last edited: 1 Dec 2009
  20. anubis666

    anubis666 New Member

    Joined:
    17 Aug 2009
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте!помогите пожалуйста :D .
    Code:
    #!d:/Perl/bin/perl.exe
    use DBI;
    use CGI qw(:standart :cgi);
    use CGI::cookie;
    use CGI::Carp qw(fatalsToBrowser); 
    ######################################
    print "Content-Type: text/html\n\n";
    my $user = param('user');
    my $pass = param('pass');
    my $chanel = param('chanel');
    ######################################
    my $sql = DBI->connect('DBI:mysql:database=chanel;host=localhost', 'логин', 'пароль') || die $sql::errstr; 
    ######################################
    $result = $sql->prepare("SELECT users FROM chanel WHERE users='$user'");
    $result->execute();
    $result2 = $sql->prepare("SELECT pass FROM chanel WHERE pass='$pass'");
    $result2->execute();
    $result3 = $sql->prepare("SELECT chanel FROM chanel WHERE chanel='$chanel'");
    $result3->execute();
    ######################################
    my $result_user = $result->fetchrow_hashref();
    my $result_pass = $result2->fetchrow_hashref();
    my $result_chanel = $result3->fetchrow_hashref();
    ######################################
    $cook = new CGI::Cookie("-name => admin_chanel,
        -value => 666,
        -expires => +3M,
        -domain => 10.33.195.248,
        -path => /cgi-bin
        -secure => 1
    ");
    ######################################
    $user2=$result_user->{users};
    $pass2=$result_pass->{pass};
    $chanel2=$result_chanel->{chanel};
    if(($user == $user2)&&($pass eq $pass2)&&($chanel eq $chanel2))
    {print header(-cookie=>$cook);
    }
    else
    {print "Prover`te dannii";
    }
    $sql->disconnect();
    
    Значит суть проблемы такова что когда пользователь ввёл логин,пароль и название канала(и эти данные проверились в бд)то куки не создаются.(почему??),и в логах апача появляется сообщение
    Code:
    [Fri Dec 04 14:33:44 2009] [error] [client 10.33.195.248] [Fri Dec  4 14:33:44 2009] login.pl: DBI::db=HASH(0x1bca77c)->disconnect invalidates 3 active statement handles (either destroy statement handles or call finish on them before disconnecting) at D:/wamp/bin/apache/Apache2.2.11/cgi-bin/login.pl line 42., referer: http://10.33.195.248/page.php?3
    (42 строка это $sql->disconnect(); ) в чем проблема??
     
Loading...
Thread Status:
Not open for further replies.