[ Pobierz całość w formacie PDF ]
.Oczywiœcie zmiennejmo¿esz nadaæ zupe³nie dowoln¹ nazwê.Po utworzeniu obiektu dostêp do danychprzes³anych do skryptu z formularza bêdzie mo¿na uzyskaæ za poœrednictwemtablicy rozproszonej o nazwie param.Na przyk³ad, jeœli formularz bêdziezawiera³ pole o nazwie nazwa_uzyt-kownika, to jego wartoœæ mo¿na pobraæ wskrypcie przy u¿yciu nastêpuj¹cego fragmentu kodu:$zmienna = $query->param('nazwa_uzytkownika');Korzystaj¹c z tej metody, mo¿na uzyskaæ dostêp do wartoœci ka¿dego polaformularza, wystarczy zast¹piæ nazwê nazwa_uzytkownika nazw¹ pola, któregowartoœæ chcesz pobraæ.Kolejn¹ ogromn¹ zalet¹ modu³u CGI.pm jest mo¿liwoœædostêpu wartoœci cookies przekazywanych do skryptu, w identyczny sposób, jak dowartoœci pól formularzy.Przyk³adowo, jeœli przegl¹darka u¿ytkownika przeœle doskryptu cookie o nazwie sesja, to jego wartoœæ mo¿na pobraæ przy u¿yciunastêpuj¹cego fragmentu kodu:$cookie_sesja = $query->cookies('sesja');Samodzielne dekodowanie danych z formularzyDekodowanie danych z formularzy jest jednym z tych zadañ, które wiêkszoœæ ludziniechêtnie rozwi¹zuje samodzielnie, pozostawiaj¹c je gotowym narzêdziom, takimjak wymienione powy¿ej.Jednak, jeœli nie masz dostêpu do tych programów lubkorzystasz z systemu, który nie pozwala na ich zastosowanie albo uwa¿asz, ¿emo¿esz zrobiæ to lepiej, skorzystaj z poni¿szych informacji.Pierwsz¹ rzecz¹, któr¹ program dekoduj¹cy powinien sprawdzaæ, jest metoda, jak¹dane zosta³y przes³ane.Na szczêœcie, to jest akurat ³atwe zadanie.Zmiennaœrodowiskowa REQUEST_METHOD ustawiona przez serwer tu¿ przed wywo³aniemprogramu CGI, zawiera tê informacjê.Jeœli dane z formularza bêd¹ przes³ane za pomoc¹ metody GET, bêd¹ przechowywanew zmiennej QUERY_STRING.Jeœli dane z formularza przesy³ane s¹ za pomoc¹ metody POST, zostan¹ wys³ane nastandardowe wejœcie skryptu.Zmienna œrodowiskowa CONTENT_LENGTH wskazuje nailoœæ bajtów danych wys³anych z przegl¹darki.W dekoderze powinieneœ siêupewniæ, ¿e czytasz dok³adnie tyle bajtów.Niektóre z przegl¹darek potrafi¹ wsposób niew³aœciwy wysy³aæ na ich koñcu dodatkowe dane.Typowy skrypt dekoduj¹cy powinien dzia³aæ zgodnie z poni¿sz¹ instrukcj¹Powinien rozdzieliæ pary nazwa – wartoœæ (wzglêdem znaku &).Nastêpnie oddzieliæ nazwê od wartoœci (wzglêdem znaku =).Jeœli jakaœ nazwawystêpuje kilka razy, to nale¿y opracowaæ sposób na uwzglêdnienie tejw³aœciwoœci.PóŸniej nale¿y zmieniæ znaki plus na spacje.Na koniec zdekodowaæ wszystkie znaki zapisane heksadecymalnie.Czy interesuje Ciê dekodowanie zawartoœci plików przesy³anych z przegl¹darkina serwer? W tym przypadku regu³y dzia³ania s¹ zupe³nie inne.W szczególnoœci,informacje otrzymywane w tym przypadku s¹ zgodne z zasadami obs³ugiwieloczêœciowych wiadomoœci MIME, a zatem bêdziesz musia³ obs³ugiwaæ wieleró¿nych typów danych.Jeœli interesuj¹ Ciê te zagadnienia, to bez truduodnajdziesz specyfikacje przekazywania plików z przegl¹darki na serwer, a wnich, wszelkie szczegó³owe informacje.Skrypty bez przetwarzania nag³Ã³wkówJeœli przeœledzi³eœ uwa¿nie podstawowe regu³y pisania skryptów CGI opisane wtej czêœci, to wiesz ju¿, ¿e dane wyjœciowe ze skryptów bêd¹ czytane przezserwer i odsy³ane do przegl¹darki poprzez sieæ.W wiêkszoœci przypadków takieprzetwarzanie jest wystarczaj¹ce, gdy¿ serwer jest w stanie wykonaæ dodatkow¹kontrolê danych i dodaæ do nich w³asne nag³Ã³wki.Jednak w pewnych przypadkach mo¿e siê zdarzyæ, ¿e chcemy obejœæ przetwarzaniedanych przez serwer i wysy³aæ je wprost do przegl¹darki.Mo¿e to byæ przydatnedo przyspieszenia dzia³ania lub wysy³ania danych, które serwer móg³byzakwestionowaæ.W wiêkszoœci zwyk³ych skryptów i tych obs³uguj¹cychformularze, nie jest to potrzebne.Skrypty CGI obs³uguj¹ce taki sposób przekazu danych nazywane s¹ skryptami NPH(ang.Non-Parsed Headers).Jeœli chcesz skorzystaæ ze skryptu NPH, musisz gonieco zmodyfikowaæ.Skrypt powinien mieæ przedrostek nph-, na przyk³ad, nph-pingaki lubnph-fixdata.Skrypt musi samodzielnie wysy³aæ dodatkowe nag³Ã³wki HTTP oprócz standardowegoContent-type, Location i Status.Nag³Ã³wki s¹ najbardziej oczywist¹ zmian¹, jak¹ nale¿y wprowadziæ w skrypcie.W szczególnoœci pierwsza linia powinna zawieraæ kod statusu, na przyk³ad:HTTP/1.0 200 OK.Nag³Ã³wek ten oznacza, ¿e „wszystko posz³o dobrze, dane s¹ w drodze”.Innyprzyk³ad nag³Ã³wka to:HTTP/1.0 204 No ResponseJak ju¿ nauczyliœmy siê wczeœniej, kod ten oznacza, ¿e skrypt nie wys³a³¿adnych danych, wiêc przegl¹darka nie powinna nic robiæ (na przyk³ad, ³adowaæstrony).Drugi nag³Ã³wek, który powinniœmy umieœciæ, to Server.To, czy jest on wymaganynie jest jednoznacznie okreœlone, jednak¿e jego umieszczenie jest przydatne.Wkoñcu zastosowanie skryptu NPH niejako symuluje bezpoœrednio dzia³anie serwera,wiêc dodanie nag³Ã³wka Server na pewno nie zaszkodzi.Nag³Ã³wek ten wskazuje po prostu na wersjê i nazwê serwera, z któregokorzystamy.Na przyk³ad:Server: NCSA/1.3Server: CERN/3
[ Pobierz całość w formacie PDF ]
Darmowy hosting zapewnia PRV.PL