UWAGA!!! Je┐eli nie masz pojΩcia
o Java Script'cie to najpierw przeczytaj artyku│
"Java Script dla pocz▒tkuj▒cych", gdy┐
jest to jego kontynuacja i wykorzystana tu bΩdzie
wiΩkszo╢µ rzeczy opisanych w tamtym artykule.
My╢la│e╢ kiedy╢ o ograniczeniu
dostΩpu do niekt≤rych stron w twojej witrynie WWW?
Tak? A czy domy╢lasz siΩ, ┐e nie jest to takie
trudne? Zaczniemy po kolei...
Po pierwsze, musimy napisaµ funkcjΩ,
kt≤ra sprawdzi poprawno╢µ has│a i loginu
podanego przez u┐ytkownika.
<script languge="JavaScript">
function password(login,haslo){
if (login=="prawidlowylogin"){
if (haslo=="prawidlowehaslo"){
location="doceldokument.htm"
}
}
}
</script>
I mamy ju┐ najwa┐niejsz▒ czΩ╢µ naszego
skryptu. Obja╢niΩ teraz wszystko linijka po
linijce. Najpierw deklarujemy przegl▒darce, ┐e
rozpoczynamy skrypt. Potem deklarujemy funkcjΩ password
ze zmiennymi login i haslo, kt≤re
wprowadzi u┐ytkownik. NastΩpnie za pomoc▒
instrukcji warunkowej sprawdzamy, czy login jest tym
samym co prawidlowylogin i czy haslo
to to samo co prawidlowehaslo (inaczej m≤wi▒c,
czy has│o i login s▒ poprawne). Je┐eli
wszystko jest poprawnie to wykonywana jest
instrukcja powoduj▒ca przej╢cie do ukrytego
dokumentu. Zastosowali╢my tu zmienn▒ location
kt≤ra przechowuje adres bie┐▒cego dokumentu, tak
wiΩc zmieniaj▒c j▒, zmieniamy bie┐▒cy dokument
i przegl▒darka │aduje podan▒ stronΩ.
Teraz musimy umo┐liwiµ odwiedzaj▒cemu wpisanie
has│a i loginu. Wykorzystamy do tego celu zwyk│y
formularz.
<form name="podajhaslo">
Login: <input type=text name=login value=""><BR>
Has│o: <input type=password name=haslo value=""><BR>
<input type=button value="Wejd╝">
<input type=reset value=Wyczy╢µ>
</form>
W efekcie:
Wszystko powinno byµ jasne. Zwyk│y formularz w
HTML'u z dwoma polami (Login i has│o) i dwoma
przyciskami (wejd╝ i wyczy╢µ). »eby jednak
wykorzystaµ go do naszych cel≤w, musimy go trochΩ
przerobiµ. Chodzi o to, ┐eby formularz wywo│ywa│
nasz▒ funkcjΩ razem z danymi wprowadzonymi przez u┐ytkownika.
Zrobimy to tak: w parametrach przycisku nazwanego
"Wejd╝" dodamy parametr onClick="instrukcje".
Parametr ten obs│uguje zdarzenie. Je┐eli kto╢
nadusi przycisk (zajdzie zdarzenie onClick), to
zostan▒ wykonane instrukcje JavaScriptu umieszczone
po znaku r≤wno╢ci w cudzys│owu. W naszym
przypadku instrukcj▒ bΩdzie wywo│anie naszej
funkcji: onClick="password()". W
okr▒g│ych nawiasach musimy umie╢ciµ warto╢ci
loginu i has│a (w takiej kolejno╢ci, gdy┐ w tej
kolejno╢ci mamy zdefiniowane w funkcji). »eby
sprawdziµ co wpisa│ u┐ytkownik, musimy odwo│aµ
siΩ do objekt≤w. »eby sprawdziµ, co u┐ytkownik
wpisa│ w polu login musimy najpierw odwo│aµ
siΩ do formularza u┐ywaj▒c jego nazwy, czyli podajhaslo,
potem do pola loginu (ca│y czas wykorzystujemy
nazwy zdefiniowane parametrem name), czyli login,
a nastΩpnie do jego warto╢ci, czyli tego co jest w
polu do wpisywania: value. Wszystko │▒czymy
za pomoc▒ kropek i wychodzi: podajhaslo.login.value
Tam w│a╢nie przechowywane jest to, co odwiedzaj▒cy
wprowadzi│ w polu login! Parametr onClick wygl▒da
teraz tak: onClick="password(podajhaslo.login.value)".
To samo robimy z polem haslo, oddzielamy je
przecinkami i nasz formularz w ca│o╢ci wygl▒da
nastΩpuj▒co:
<form name="podajhaslo">
Login: <input type=text name=login value=""><BR>
Has│o: <input type=password name=haslo value=""><BR>
<input type=button value="Wejd╝"
onClick="password(podajhaslo.login.value,podajhaslo.haslo.value)">
<input type=reset value=Wyczy╢µ>
</form>
I skrypt jest sko±czony. Nale┐y pamiΩtaµ, ┐e
pierwszy skrypt (definicja funkcji) powinien
znajdowaµ siΩ w sekcji <HEAD>, a drugi
(formularz) powinien znajdowaµ siΩ w sekcji
<BODY>. Je┐eli chcesz wykorzystaµ ten
skrypt, to w definicji funkcji musisz pozmieniaµ
pola: "prawidlowylogin", "prawidlowehaslo",
"doceldokument.htm", aby dostosowaµ je do
w│asnych potrzeb (teraz s▒ tam warto╢ci przyk│adowe).
UWAGA !!! I jeszcze jedna bardzo wa┐na
rzecz: SKRYPT NIE JEST BEZPIECZNY. Dzia│a
tylko na tych kt≤rzy nie maj▒ wcale pojΩcia o
HTML'u! Ka┐dy inny internauta sprawdzi ╝r≤d│o
strony, a tam jest wszystko co potrzebuje, ┐eby wej╢µ
na utajnion▒ stronΩ! Po za tym has│o i login mo┐e
byµ tylko jedno, ale da siΩ temu w pewien spos≤b
zaradziµ.
Je┐eli chcesz, aby skrypt by│ bezpieczniejszy,
trzeba przerobiµ definicjΩ funkcji password.
Trzeba j▒ tak przerobiµ, aby nie zawiera│a takich
danych jak: login, has│o i adres strony docelowej.
Jak to zrobiµ? Trzeba zastosowaµ w pewnym stopniu
fortel. Strona docelowa=login+has│o+'.htm'. W ten
spos≤b, je┐eli chcesz, aby login, by│ np. ufo, a
has│o np. mars, to plik docelowy bΩdzie mia│
postaµ: ufo_mars.htm
A oto funkcja po modyfikacji:
<script languge="JavaScript">
<!--
function password(login,haslo){
password=""
if (password!=null){
location=login+'_'+haslo+'.htm'
}
}
-->
</script>
Zmodyfikowana funkcja dzia│a ca│kiem inaczej.
Je┐eli u┐ytkownik wprowadzi│ dane, to nastΩpuje
skok do strony nazwanej:
login_haslo.htm
Je┐eli u┐ytkownik ╝le co╢ wprowadzi, to
zostanie wy╢wietlona strona, tak jakby adres zosta│
╝le wprowadzony (bo te┐ tak w takiej sytuacji
jest). I to jest spory problem w skrypcie, gdy┐
powinien pojawiµ siΩ komunikat o z│ym wpisaniu
has│a lub loginu. Je┐eli wiesz jak w temu zaradziµ,
to napisz do mnie.
Z g≤ry dziΩkujΩ za informacje. Teraz zajmiemy siΩ
tym jak spersonalizowaµ ten skrypt:
Je┐eli strony docelowe znajduj▒ siΩ w jakim╢
folderze to przer≤b to w nastΩpuj▒cy spos≤b:
location='folder/'+login+'_'+haslo+'.htm'
Je┐eli strony s▒ zako±czone na .html
to to tak┐e powiniene╢ zmieniµ.
A oto jak mo┐e wygl▒daµ strona ze skryptem:
<HTML>
<HEAD>
<script languge="JavaScript">
<!--
function password(login,haslo){
password=""
if (password!=null){
location.href=login+'_'+haslo+'.htm'
}
}
-->
</script>
</HEAD>
<BODY>
<form name="podajhaslo">
Login: <input type=text name=login value=""><BR>
Has│o: <input type=password name=haslo value=""><BR>
<input type=button value="Wejd╝"
onClick="password(podajhaslo.login.value,podajhaslo.haslo.value)">
<input type=reset value=Wyczy╢µ>
</form>
</BODY>
</HTML>
Ten skrypt jest ju┐ o wiele bezpieczniejszy od
poprzedniego. W ╝r≤dle nie ma ┐adnych informacji
o loginie, ha╢le, ani o adresie dokumentu
docelowego. Teraz mo┐e korzystaµ z tego wiele os≤b
naraz, wystarczy, ┐e porobisz kilka dokument≤w
HTML (docelowych) i nadasz im odpowiednie nazwy.
I to ju┐ wszystko. My╢lΩ, ┐e uda│o mi siΩ
wyja╢niµ wam, jak zastosowaµ ten skrypt i co wiΩcej:
jak on dzia│a. S▒dzΩ, ┐e m≤j przyd│ugi artyku│
na co╢ siΩ przyda│. Wszelkie komentarze, uwagi i
pytania proszΩ kierowaµ tu
lub tu.
Nikt nie zostanie bez odpowiedzi!
Maverick
maverick24@wp.pl
/ maverick24@poland.com
|