Grafika publishing webtip.cz grafika.cz mujiPod.cz mujmac.cz fotografovani.cz printing.cz builder.cz galerie
webtip.cz
adresář  | práce  | diskuse  | redakce  | inzerce
 
 


  ASP v praxi, 1. díl - Přihlašování na stránky
o autorovi 
poslat mailem 
tisknout článek 
aktuální rubrika 
Nový seriál o ASP začneme aplikací, která zabezpečí vaše stránky heslem.

Liška Adam - 29.11.2002 - clanek - Rubrika: ASP
Předchozí díl: ASP v praxi, 2. díl - Přihlašování na stránky II
Seriál: 
Následující díl: ASP v praxi, 3. díl - Hodnotíme články

Jistě jste si všimli, že články o Active Server Pages začaly vycházet v novém seriálu. Seriál ASP pro začátečníky měl za úkol vás seznámit se základy psaní aplikací v ASP. Tento nový seriál, ASP v praxi, se bude více zabývat spíše hotovými aplikacemi a problémy, se kterými se můžete setkat, jak již napovídá název, v praxi, než, někdy teoretickými, základy. Budu také předpokládat, že zvládáte všechny témata, které jsme probírali v minulém seriálu. Na závěr chci připomenout, že uvítám jakékoliv náměty, připomínky a nápady, které mi můžete posílat na můj mail.

Ale teď se již pustíme k vytváření aplikace, pomocí které se budou registrovaní uživatelé přihlašovat na stránky, jež jsou přístupné jen jim. S aplikací tohoto typu jste se určitě již někde na internetu setkali. Například přihlašování na vaše internetové rozhraní pro práci s e-maily (webmail) je praktickým použitím této aplikace. V tomto díle se naučíte tuto aplikaci ve zjednodušené formě vytvořit.

Prvním krokem při vytváření aplikace by mělo být její navrhnutí. Naše aplikace bude pracovat následovně - uživatel si otevře stránku login.html , kde do vstupního formuláře zadá potřebné informace - uživatelské jméno a heslo. Informace se odešlou do souboru overit.asp. Tam se data zkontrolují. Pokud jsou správně zadaná, soubor overit.asp uživatele přesměruje na stránku tajne.asp. V opačném případě - uživatel zadá data nesprávně - bude přesměrován na stránku chyba.asp, kde se mu zobrazí ohlášení chyby a data pak musí zadat znovu.

Jména a hesla registrovaných uživatelů budeme uchovávat v databázi. Tabulka, nazvaná uzivatele, bude mít následující strukturu:

Název pole Datový typ
ID automatické číslo - primární klíč
jmeno text
heslo text

Aplikaci máme navrženou, takže teď můžeme začít s psaním jednotlivých souborů. Začneme souborem login.html. Ten bude obsahovat formulář se dvěma vstupními poli - jmeno a heslo:

<html>
<body>
<form action="overit.asp" method="post">
<table border="0">
<tr>
<td>Uživatelské jméno: </td>
<td><input type="text" size="20" name="jmeno"></td>
</tr>
<tr>
<td>Heslo:</td>
<td><input type="password" size="20" name="heslo"></td>
</tr>
</table>
<input type="submit" value="LOGIN">
</form>
</body>
</html>

Data se odesílají souboru overit.asp, který je ověří:

<%
' Vytvoření instance objektu Connection
Set Conn = Server.CreateObject("ADODB.Connection")

' Otevření databáze (máme pro ní vytvořené
' DSN se jménem "uzivatele")

conn.Open "uzivatele"

' SQL příkaz databázi
strSQL = "SELECT * FROM uzivatele WHERE " & _
"jmeno='" & Request.Form("jmeno") & "' AND " & _
"heslo='" & Request.Form("heslo") & "' "

' Vykonání příkazu SQL
Set Rs = conn.Execute(strSQL)

' Pokud bude jméno a heslo správné, vrátí nám databáze
' nějaká data. V opačném případě nám nic nevrátí -
' - ukazatel bude v tabulce na konci

If Rs.EOF Then
Session("prihlaseny") = ""
conn.Close
Set Rs = Nothing
Set conn = Nothing
Response.Redirect ("chyba.html")
Else
Session("prihlaseny") = 1
conn.Close
Set Rs = Nothing
Set conn = Nothing
Response.Redirect ("tajne.asp")
End If

%>

Doufám, že díky okomentování kódu není třeba řádek za řádkem blíže popisovat. Mám jen dvě poznámky. První poznámkou je použití znaku _ . Pomocí něj se dají delší řetězce rozdělit na několik menších, které se vejdou na jeden řádek. Já jsem tento znak použil, protože dotaz SQL je delší než šířka sloupce s článkem tady na Webtipu. Druhou poznámkou chci přibližit rozhodovací konstrukci na konci kódu. Pokud uživatel zadá správné uživatelské jméno a heslo, bude mít proměnná na úrovni připojení prihlaseny hodnotu 1 a uživatel je přesměrován na tajne.asp, v opačném případě je proměnná ponechána prázdná a uživateli se zobrazí chybové hlášení. Význam proměnné prihlaseny  vám vysvětlím níže.

Teď vytvoříme soubor, na který je uživatel přesměrován při napsání nesprávného jména nebo hesla. Tento soubor se jmenuje chyba.asp a jediné, co obsahuje, je chybové hlášení:

<html>
<head>
<title>Špatné uživatelské jméno nebo heslo!!</title>
</head>
<body>
<b>Špatné uživatelské jméno nebo heslo!!</b>
</body>
</html>

Zbývá poslední soubor - soubor tajne.asp. Obsah tohoto souboru nechávám na vás. Můžete do něj vložit cokoliv. Jedinou podmínkou je, abyste na jeho úplný začátek vložili tuto část kódu:

<%
If Session("prihlaseny") = "" Then
Response.Redirect ("login.html")
End If
%>

Je to ochrana proti tomu, aby si nějaký vychytralý uživatel, který by neměl obsah tohoto souboru vidět, nezjistil jeho jméno a pak by jednoduše obešel vstupní formulář a kontrolu zadaných dat tím, že by zadal jeho adresu. Jak již víte, hodnota proměnné prihlaseny je v souboru overit.asp nastavena na jedničku, pokud jsou zadaná data správná. Takže jestliže uživatel obešel vstupní formulář a otevřel rovnou tuto stránku (která již má výše uvedenou bezpečnostní ochranu), má proměnnou prihlaseny prázdnou - on ji vlastně nemá vůbec zavedenou. Tím pádem se mu nezobrazí obsah této stránky a je přesměrován na stránku login.html.

Pokud máte více stránek, na které ze stránky tajne.asp odkazujete a také nechcete, aby je ostatní - tj. nezaregistrovaní - uživatelé viděli, nezapoměnte tento kód vložit i na ně.

Aplikace je v tomto bodě již celá hotova. Všechny soubory si můžete stáhnout zde . V příštím díle vytvoříme rozhraní pro administrátora, ve kterém bude moci přidávat nové uživatele a již zaregistrované uživatele odebírat a různě editovat.

Liška Adam


Hodnocení článku: -1- -2- -3- -4- -5-  Aktuální hodnocení: 2.67 (2297)

Relevantní články
Žádné články


Příspěvky do diskuse o aktuálním článku
lukas12.02.22:09chybove hlaseni - co s tim
  

 

  O vydavateli | Kontakt | Ceník reklamy | Ochrana osobních dat
©2002 Grafika Publishing. Všechna práva vyhrazena!