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