PNWS Volejte +420 602 860 704  
Vítejte | Mailing list  
Co to je PNWS?
Jak spravovat server?

Konfigurace TCP/IP
Nastavení serveru
Soubor HTTP.AUT
Instalace PERLU 5.0
Instalace PHP for Win32
Jak vytvářet stránky
Stručný úvod do HTML
Jak na CGI aplikace v PERLu
Co to je PERL?
První program
Vstup a výstup CGI skriptu
Jak zpracovat zasílaná data
Vlastní funkce
Knihovny v PERLu
Funkce PERLu
Jak na ISAPI skripty v Delphi
Omezení ISAPI v PNWS
Úvod do PHP
Jak pouľívat SSI
Co to je PNWS-SSL
Jak sehnat platný certifikát
Jak si vyrobit testovací certifikát
Knihovna SSLeay, licence
Užitečné nástroje
Bug report

Oznámení o chybě
Download center
Mailing list
Licence PNWS
 

Jak zpracovat zasílaná data

Jak již bylo uvedeno výše, skript může dostat dvěmi metodami. Každá metoda má své výhody a nevýhody. První metodou je GET. Mezi její výhody patří to, že ze starny prohlížeče se dá použít u jekéhokoliv odkazu. Všechna data se tedy zasílají připojená k URL. Jednotlivá políčka jsou předána ve formě název=hodnota a jsou oddělena znakem " &". Aby to bylo složitější, jsou speciální znaky vyskytující se v hodnotách proměnných zakódovány následujícím způsobem:

  • " " (mezera) - je kódována jako znak "+"
  • interpunkční znaménka apod. - jsou kódovány jako "%hh", kde hh je dvouciferná hexadecimální hodnota ASCII kódu znaku

   Jednotlivé prohlížeče se mírně liší v tom, které znaky kóduji, ale uvedená pravidla platí obecně. Pro dekódování tedy stačí výskyty znaku "+" nahradit mezerami a výskyty kombinací "%hh" nahradit znakem s příslušným ASCII kódem. Snadno tedy dekódujeme řetězec: Ahoj%20lidi%21. Data jsou k URL připojovány na konec pomocí znaku "?". Adresa pak tedy může vypadat následovně:

http://www.server.cz/cgi-bin/mujskript.cgi?polozka1=data1&polozka2=data2.

   Metoda GET je však nevhodná z několika důvodů. Například pokud požadujeme jméno a heslo, tak to je pak viditelné v URL. Takže každý kdo se koukne někomu přes rameno, uvidí tyto informace. Druhou nevýhodou je to, že prohlížeče nepodporují nekonečné URL a proto i data nejsou omezená.

   Oproti tomu metoda POST tyto metody odstrňuje. Nevýhodou je však to, že data vždy musí pocházet z formuláře. Nelze je tedy zaslat například z odkazu.

   Jako příklad zde uvádíme část programu, který čte data do pole $DATA{'název položky'} jak z volání metodou POST tak GET

      sub ctidata
      {
         read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
         if ($ENV{'QUERY_STRING'}) {$buffer = "$buffer\&$ENV{'QUERY_STRING'}";}
         @pairs = split(/&/,$buffer);
         foreach $pair (@pairs)          {
           ($name,$value) = split(/=/,$pair);
           $value =~ tr/+/ /;
           $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
           $DATA{$name} = $value;
         }
      }
 
 
  O PinkNet Web Serveru | Demo vSHOP.pnws | Mailing list | Download | Oznámení o chybě
 
Kontakt