The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
рамер метода пост, !*! pheonix, 03-Окт-05, 08:50  [смотреть все]
как увелиить размер post? потому что не всё через пост доходит а одинаковое количество символов, где это поменять на большее?
  • рамер метода пост, !*! azalio, 12:35 , 03-Окт-05 (1)
    >как увелиить размер post? потому что не всё через пост доходит а
    >одинаковое количество символов, где это поменять на большее?

    Чем постишь, куда постишь.

    • рамер метода пост, !*! pheonix, 12:51 , 03-Окт-05 (2)
      >>как увелиить размер post? потому что не всё через пост доходит а
      >>одинаковое количество символов, где это поменять на большее?
      >
      >Чем постишь, куда постишь.


      через форму написанную на языке html указан метод пост в форме, постю в скрипт на писанный на перле и всё это на апаче

      • рамер метода пост, !*! rWizard, 23:55 , 03-Окт-05 (3)
        Скрипт иcпользует CGI.pm ? если да, то $CGI::POST_MAX ( http://search.cpan.org/~lds/CGI.pm-3.11/CGI.pm#Avoiding_Deni... )


        • рамер метода пост, !*! pheonix, 10:59 , 05-Окт-05 (4)
          >Скрипт иcпользует CGI.pm ? если да, то $CGI::POST_MAX ( http://search.cpan.org/~lds/CGI.pm-3.11/CGI.pm#Avoiding_Deni... )


          нет не используеться он, руками там всё принимаеться но никаких ограничений не стоит сразу говорю

          • рамер метода пост, !*! rWizard, 14:28 , 05-Окт-05 (5)
            >>Скрипт иcпользует CGI.pm ? если да, то $CGI::POST_MAX ( http://search.cpan.org/~lds/CGI.pm-3.11/CGI.pm#Avoiding_Deni... )
            >
            >
            >нет не используеться он, руками там всё принимаеться но никаких ограничений не
            >стоит сразу говорю
            тогда код скрипта в студию

            • рамер метода пост, !*! pheonix, 07:39 , 07-Окт-05 (6)
              #!/usr/bin/perl
              package in;
              BEGIN
                  {
                  $VERSION = '1.1';
                  use Exporter();
                  @ISA=qw(Exporter);
                  @EXPORT=qw(%GET %POST %COOKIE %IN);
                  use Storable qw(dclone nstore retrieve);
                  
                  if ($ENV{REQUEST_METHOD} eq "GET") {&ParseGet($ENV{QUERY_STRING});%GET=%{dclone(\%G)};undef %G;}
                  if ($ENV{REQUEST_METHOD} eq "POST")
                      {
                      if ($ENV{CONTENT_TYPE}=~/^application\/x\-www\-form\-urlencoded/i) {&ParsePost;}
                      if ($ENV{CONTENT_TYPE}=~/^multipart\/form\-data/i) {&ParsePostF;}
                      }
                  &ParseCookie;    
                  %IN=(%POST,%GET,%COOKIE);
                  # переменные окружения
                  
                  # ParseGet
                  sub ParseGet(?)
                      {
                      ($data)=@_;
                      undef %G;
                      foreach (split(/&/,$data))
                          {
                          ($a,$b)=split(/=/,$_);    
                          $a=URLDecode($a);
                          $b=URLDecode($b);
                          if (exists($G{$a}))
                              {
                              if (!ref $G{$a}) #esli net esho massiva
                                  {
                                  $_=$G{$a};
                                  delete $G{$a};
                                  push @{$G{$a}},$_;
                                  }
                              push (@{$G{$a}},$b);
                              }
                          else {$G{$a}=$b;}
                          }
                      return 0;
                      }


                  # ParsePost
                  sub ParsePost
                      {
                      sysread(STDIN,$post,$ENV{CONTENT_LENGTH});
                      &ParseGet($post);
                      %POST=%{dclone(\%G)};
                      undef %G;
                      return 0;
                      }
                  
                  
                  # ParsePostF
                  sub ParsePostF
                      {
                      sysread(STDIN,$post,$ENV{CONTENT_LENGTH});
                      my $boundary_=$ENV{CONTENT_TYPE};
                      $boundary_=~m/boundary=\-*([\w\/\+\\]+)/;
                      $boundary_=$1;
                      @boundary_=split(/-+$boundary_/,$post);
                      pop @boundary_;
                      shift @boundary_;
                      
                      foreach $param_ (@boundary_)
                          {
                          $param_=~s/^[\n\r]+//;
                          ($head_,$data_)=split (/[\r\n]{4}/,$param_);
                          $data_=~s/\r\n$//;
                          #key
                          $head_=~m/name="?(\w+)["; \r\n]/m;
                          $key_=$1;
                          #data
                          if ($head_=~m/filename="?([^";\r\n]+)"?/m)
                              {
                              # filer to filename
                              ${$POST{$key_}}[0]=$1;
                              ${$POST{$key_}}[1]=$data_;
                              }
                          elsif (exists($POST{$key_}))
                              {
                              if (!ref $POST{$key_}) #esli net esho massiva
                                  {
                                  $_=$POST{$key_};
                                  delete $POST{$key_};
                                  push @{$POST{$key_}},$_;
                                  }
                              push (@{$POST{$key_}},$data_);
                              }
                          else {$POST{$key_}=$data_;}
                          }
                      return 0;
                      }
                  
                  
                  
                  # ParseCookie
                  sub ParseCookie
                      {
                      foreach (split(/; /,$ENV{HTTP_COOKIE}))
                          {
                          ($key_,$value_)=split(/=/,$_);
                          URLDecode($key_);
                          URLDecode($value_);
                          #filters on cookie
                          $COOKIE{$key_}=$value_;
                          }
                      return 0;
                      }
                  
                  # unescape URL-encoded data
                  sub URLDecode($)
                      {    
                      my $todecode = shift;
                      $todecode =~ tr/+/ /;
                      $todecode =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge;
                      return $todecode;
                      }
                  }
              1;


              вот, но тут нет никаких ограничений
              вызываеться в программе так $IN{key} и всё работает тока вот что-то он не до конца принимает всё что нужно:(




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру