PERL $_GET and $_POST

Тема в разделе "Другие языки", создана пользователем dobs, 6 мар 2009.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. dobs

    dobs Создатель

    Регистр.:
    5 янв 2007
    Сообщения:
    40
    Симпатии:
    12
    Собсна вопрос на перле как то можно получать данные переменных как на пхп через глобалы $_GET и $_POST?
     
  2. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    Реализация $_GET на перле

    Код:
    sub populateQueryFields {
      %queryString = ();
      my $tmpStr = $ENV{ "QUERY_STRING" };
      @parts = split( /\&/, $tmpStr );
      foreach $part (@parts) {
        ( $name, $value ) = split( /\=/, $part );
        $queryString{ "$name" } = $value;
      }
    }
    Использование:

    Код:
    URL:
    http://www.site.com/cgi-bin/test.pl?login=vasia&pass=123
    
    &populateQueryFields;
    $login = $queryString{ "login" };
    $pass = $queryString{ "pass" };

    Реализация $_POST на перле

    Код:
    sub populatePostFields {
      %postFields = ();
      read( STDIN, $tmpStr, $ENV{ "CONTENT_LENGTH" } );
      @parts = split( /\&/, $tmpStr );
      foreach $part (@parts) {
        ( $name, $value ) = split( /\=/, $part );
        $value =~ ( s/%23/\#/g );
        $value =~ ( s/%2F/\//g );
        $postFields{ "$name" } = $value;
      }
    }
    Использование:

    Код:
    <FORM ACTION="../cgi-bin/test.pl" METHOD="POST">
      <INPUT TYPE="TEXT" NAME="login">
      <INPUT TYPE="TEXT" NAME="pass">
      ...
    </FORM>
    
    &populatePostFields;
    $login = $postFields{ "login" };
    $pass = $postFields{ "pass" };
     
    dobs нравится это.
  3. agny

    agny Писатель

    Регистр.:
    3 сен 2008
    Сообщения:
    3
    Симпатии:
    0
    потсмотрите в сторону mechanize
     
  4. dobs

    dobs Создатель

    Регистр.:
    5 янв 2007
    Сообщения:
    40
    Симпатии:
    12
    Ет мне ничего не сказало... я Перл только начинаю учить (после ПХП)
     
  5. dobs

    dobs Создатель

    Регистр.:
    5 янв 2007
    Сообщения:
    40
    Симпатии:
    12
    А на перле есть чет по типу intval ?
     
  6. Kaimi

    Kaimi

    Регистр.:
    28 окт 2007
    Сообщения:
    257
    Симпатии:
    253
    print int 2.5
     
    dobs нравится это.
  7. dobs

    dobs Создатель

    Регистр.:
    5 янв 2007
    Сообщения:
    40
    Симпатии:
    12
    Итак лажа №3
    не выходит чет функцию написать...
    что пишу

    PHP:
    sub formatfilesize($var) {
            print 
    $var ' Байт';
    }
    Вызов
    PHP:
    &formatfilesize;
    print 
    $fsize{'100'};
    в итоге просто выводит слово Байт
    что я не так написал?
     
  8. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    Не передан параметр в функцию

    Код:
    &formatfilesize(...);
     
  9. dobs

    dobs Создатель

    Регистр.:
    5 янв 2007
    Сообщения:
    40
    Симпатии:
    12
    Всеравно чет не выходит:nezn:
     
  10. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    Как теперь выглядит код? Где присваивается значение параметру, передаваемому в функцию?
     
Статус темы:
Закрыта.