cgi&web

Trochę ciekawostek – na weekend (czego to ludzie nie wymyślą ...


Wtorek 03 grudnia 2002 r. 21:54:22

 













optymalizowane
dla:800x600x16bit

Strona kodowa ISO
8859-2±æê³ñó¼¿


Zajmijmy siê do¶æ prostym przyk³adem - u¿ytkownik wpisuje has³o i login a
skrypt sprawdza czy s± one poprawne i w zale¿no¶ci od tego wy¶wietla
konkretn± stronê. Poza tym - gdy zostanie wywo³any sam skrypt - poprosi
u¿ytkownika o has³o i login. Na razie nie bierzemy pod uwagê
bezpieczeñstwa przesy³anych danych - gdy dojdziemy do obs³ugi plików,
napiszemy ten skrypt od nowa.W tej chwili pomijamy "zewnêtrzny"
kod HTML - wywo³any skrypt, bez ¿adnych parametrów wy¶wietli stronê na
której bêdziemy musieli podaæ login i has³o - oczywi¶cie, widaæ to go³ym
okiem, ale na wszelki wypadek podajemy...Login : testHas³o
: test#!/usr/bin/perlif
($ENV{'REQUEST_METHOD'} eq 'GET'){$bufor =
$ENV{'QUERY_STRING'};}else{read(STDIN, $bufor,
$ENV{'CONTENT_LENGTH'});}@pairs = split(/&/,
$bufor);foreach $pair (@pairs){($name, $value) = split(/=/,
$pair);$value =~ tr/+/ /;$value =~
s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;$INPUT{$name} =
$value;}$login = "test";$haslo = "test";print
"Content-type: text/html\n\n";print "<HTML>";print
"<HEAD>";print
"<TITLE>Odpowied¼</TITLE>\n";print
"</head>";print "<BODY bgcolor=\"#FFFFFF\">\n";if
($INPUT{'akcja'} eq ''){&logowanie;}elsif ($INPUT{'akcja'} eq
'1'){&sprawdz;}else {&nie_zrozumiane;}###########
procedury #########sub nie_zrozumiane{print "Komenda nie jest
znana";}sub logowanie{print
<<"here_document";<HTML><HEAD><TITLE>Odpowied¼</TITLE></HEAD><BODY
bgcolor="#FFFFFF"><form
action="http://adres_serwera/cgi-bin/nazwa_skryptu.pl"
method="POST"><input type="hidden" name="akcja"
value="1"><table border="0" width="100%"><tr><td
width="20%"><p
align="center"><b>Login</b></p></td><td
width="80%"><p align="left"><input type="text" size="30"
name="login" ></p></td></tr><tr><td
width="20%"><p
align="center"><b>Has³o</b></p></td><td
width="80%"><p align="left"><input type="password"
size="30"
name="haslo"></p></td></tr><tr><td
width="20%"></td><td width="80%"><input
type="submit" name="zaloguj" value="Zaloguj
siê"></p></td></tr></table></form>here_document}sub
sprawdz{if (($INPUT{'login'} eq $login) &&
($INPUT{'haslo'} eq $haslo)){print "Login oraz has³o zosta³y wpisane
<b>poprawnie!</b>"}else {print "Wpisa³e¶ nieprawid³owy
login lub nieprawid³owe has³o.";}}Zajmijmy siê
analiz± poszczególnych fragmentów kodu :
if ($INPUT{'akcja'} eq '')
{&logowanie;}(po s³owie eq wystêpuj± dwa pojedyncze
cudzys³owy)
Sprawdzamy zawarto¶æ zmiennej, któr± przekazywali¶my do skryptu przy
pomocy ukrytego pola formularza. Je¿eli jest pusta wywo³ujemy procedurê
logowanie. Pêtle i instrukcje warunkowe jak i procedury bêdziemy
opisywaæ w dziale po¶wiêconym programowaniu w jêzyku Perl, dlatego nie
zajmiemy siê nimi w tej chwili.
elsif ($INPUT{'akcja'} eq '1')
{&sprawdz;}
Je¿eli akcja nie by³a pusta (nie zawiera³a ¿adnej warto¶ci),
sprawdzamy, czy by³a równa 1, je¿eli tak, wywo³ujemy procedurê
sprawdz.
else {&nie_zrozumiane;}
Je¿eli akcja nie by³a pusta ani nie by³a równa 1,
wywo³ujemy procedurê nie_zrozumiane. Akurat w przypadku naszego
skryptu ten warunek zupe³nie nie jest potrzebny, ale wykorzystujemy go,
aby pokazaæ dzia³anie warunku if-elsif-else...
Procedury logowanie i nie_zrozumiane nie wymagaj± chyba
komentarza...
if (($INPUT{'login'} eq $login) &&
($INPUT{'haslo'} eq $haslo))
Na pocz±tku skryptu okre¶lili¶my warto¶æ zmiennych $login oraz
$haslo - w tym momencie sprawdzamy, czy w pola naszego formularza
zosta³y wpisane w³a¶ciwe dane. roszê zwróciæ uwagê na podwójne nawiasy - w
Perlu warunek musi byæ ograniczony nawiasami - sprawdzamy czy login
oraz (&&) has³o s± wpisane poprawnie - w tym przypadku
wyra¿enie ($INPUT{'login'} eq $login)
jest traktowane jako lewa strona warunku, a wyra¿enie ($INPUT{'haslo'} eq $haslo) jako prawa, mamy wiêc
warunek (lewa && prawa).Znaki && mo¿na zast±piæ
s³owem and.W przypadku tego warunku niepotrzebne jest u¿ycie
elsif - interesuje nas prawda w obydwu i tylko obydwu
przypadkach.
Powrócimy do tego skryptu w momencie obs³ugi plików. W nastêpnej czê¶ci
tak¿e o analizie danych - zajmiemy siê wyszukiwaniem konkretnych s³ów
(wzorców) w przychodz±cym do skryptu tek¶cie.
OpracowanieZawadka AndrzejEnergosystem Web
Studio
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • strefamiszcza.htw.pl
  • Copyright (c) 2009 TrochÄ™ ciekawostek – na weekend (czego to ludzie nie wymyÅ›lÄ… ... | Powered by Wordpress. Fresh News Theme by WooThemes - Premium Wordpress Themes.