07.06.2015 Views

Untitled - Vitajte na stránkach www.einsty.hostujem.sk

Untitled - Vitajte na stránkach www.einsty.hostujem.sk

Untitled - Vitajte na stránkach www.einsty.hostujem.sk

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

P R O G R A M U J E M E<br />

ASP a databázy / 11. èas<br />

V tejto èasti dokonèíme „minitrilógiu“ venovanú vytvoreniu internetového èasopisu.<br />

Zostalo nám vyrieši jeho neverejnú, redakènú èas , t. j. formuláre a mechanizmy, prostredníctvom<br />

ktorých sa vkladajú do èasopisu nové èlánky, vykonáva administrácia autorov,<br />

rubrík a podobne.<br />

Ak sa pozrieme <strong>na</strong> <strong>na</strong>dpis, vidíme, že sme sa prepracovali už do jedenástej èasti. V predchádzajúcich<br />

èastiach bola podrobne opísaná tvorba ankety a aj verejnej, t. j. èitate¾om prístupnej<br />

èasti internetového èasopisu. Pre tých, ktorí zaèali tento seriál sledova ne<strong>sk</strong>ôr, je síce<br />

mierne problematické zoh<strong>na</strong> staršie èísla èasopisu, ale sú tu z<strong>na</strong>èné možnosti, <strong>na</strong>príklad elektronická<br />

podoba PC REVUE <strong>na</strong> CD priložených k èasopisu, príklady <strong>na</strong> webe a podobne.<br />

Redakèná èas internetového èasopisu nebude pre nás nièím novým, bude to vlastne<br />

opakovanie interakcie medzi formulármi <strong>na</strong> HTML stránkach a údajmi v databáze. V doteraz<br />

publikovaných príkladoch sme kládli dôraz <strong>na</strong> jednoduchos a názornos , a to aj <strong>na</strong><br />

úkor pohodlia používate¾a. V tejto èasti to <strong>na</strong>pravíme a pre niektoré stránky redakèného<br />

formulára ukážeme <strong>na</strong>j<strong>sk</strong>ôr minimálny funkèný kód a potom kompletný kód, ktorý je<br />

používate¾<strong>sk</strong>y „prívetivý“.<br />

V deviatej èasti sme <strong>na</strong>vrhli prototyp riešenia redakèného formulára. Prv než sa k nemu<br />

dopracujeme, musíme vyrieši autentifikáciu autorov èiže spôsob ich prihlasovania sa do<br />

redakèného systému. Prispieva do internetového èasopisu totiž môžeme umožni len èlenom<br />

redakèného kolektívu. Ako by to s èasopisom vyzeralo, keby tam mohol prispieva<br />

každý, to si urèite vieme domyslie . Preto sa do redakèného systému bude vstupova cez<br />

„autorizaènú“ stránku redakcia.html, ktorá obsahuje jednoduchý formulár <strong>na</strong> zadanie<br />

priezvi<strong>sk</strong>a autora a jeho prihlasovacieho hesla.<br />

REDAKÈNÝ SYSTÉM<br />

Autor:<br />

Heslo:<br />

Redakèný systém <br />

Redakèný systém<br />

<br />

<br />

Autor:<br />

<br />

Heslo:<br />

<br />

<br />

<br />

Takáto jednoduchá HTML stránka <strong>na</strong> prihlásenie autora do systému úplne postaèuje,<br />

ale aby sme zvýšili aj jej pedagogickú hodnotu pre èitate¾a PC REVUE, pridáme k funkènému<br />

jadru stránky redakcia.html ïalší jednoduchý formulár s textovým po¾om, do ktorého<br />

budeme vypisova nápoveï pri prechode kurzora myši po<strong>na</strong>d každé editaèné pole<br />

formulára. Výpis textu nápovede môžeme u<strong>sk</strong>utoèni pomocou <strong>sk</strong>riptového kódu <strong>na</strong> strane<br />

klienta, <strong>na</strong>príklad pomocou funkcií v JavaScripte. Funkcie AutorA() a HesloA() sú<br />

vyko<strong>na</strong>né, keï sa kurzor myši dostane <strong>na</strong>d editaèné pole <strong>na</strong> zadanie príslušnej hodnoty.<br />

Vtedy sa vypíše do pomocného textového po¾a vysvet¾ujúci text. Keï sa kurzor myši dostane<br />

mimo zadávacieho po¾a, funkcia Oz<strong>na</strong>mN() vymaže obsah pomocného textového po¾a.<br />

Redakcny system<br />

<br />

<br />

Redakèný systém<br />

<br />

<br />

Autor:<br />

<br />

Heslo:<br />

<br />

<br />

&nbsp;<br />

&nbsp;<br />

<br />

Funkènos <strong>sk</strong>riptového kódu v JavaScripte si môžeme <strong>na</strong>jjednoduchšie overi tak, že<br />

stránku redakcia.html otvoríme v náh¾adovom okne vývojového prostredia (v <strong>na</strong>šom prípade<br />

Microsoft FrontPage 2002) alebo pomocou prehliadaèa webových stránok (obr. 1).<br />

Tento formulár by sme, pochopite¾ne, mohli ïalej zdoko<strong>na</strong>¾ova , <strong>na</strong>príklad v prípade<br />

nesprávnych údajov èervenou farbou vypísa do pomocného textového po¾a oz<strong>na</strong>m, ktorý<br />

parameter zadal používate¾ nesprávne, a podobne.<br />

Po autentifikácii používate¾a <strong>na</strong> stránke<br />

redakcia.html sa zadané údaje odovzdajú<br />

<strong>sk</strong>riptovému kódu <strong>na</strong> stránke vkladanie.asp.<br />

Tento kód musí preveri , èi sú autorom zadané<br />

údaje identické s údajmi o autoroch, uloženým<br />

v databáze. Takýto jednoduchý spôsob<br />

autentifikácie pre škol<strong>sk</strong>ý internetový èasopis<br />

úplne postaèuje. Pri systémoch, kde podstatne<br />

viac záleží <strong>na</strong> bezpeènosti, <strong>na</strong>príklad pri internetbankingu,<br />

by bolo <strong>na</strong>vrhované riešenie<br />

autentifikácie, samozrejme, nedostatoèné. K<br />

procesu bezpeènejšej autentifikácie sa preto<br />

vrátime v niektorom z ïalších pokraèovaní,<br />

Obr. 1<br />

kde si ukážeme využitie objektov Session, súboru<br />

global.asa, uložených procedúr a podobne.<br />

Urèitému zjednodušeniu sa v <strong>na</strong>šom cviènom príklade nevyhli ani návrhy tabuliek.<br />

Pravidlám referenènej integrity a podmienkam zaradenia tabuliek do príslušných normálnych<br />

foriem sa takisto ešte budeme venova .<br />

Pripomeòme si <strong>na</strong>šu tabu¾ku Autori, ktorú sme <strong>na</strong>vrhli pomocou príkazu SQL:<br />

CREATE TABLE Autori<br />

(<br />

id_autora INT NOT NULL PRIMARY KEY,<br />

priezvi<strong>sk</strong>o VARCHAR(15),<br />

meno VARCHAR(15),<br />

heslo VARCHAR(8),<br />

email VARCHAR(15),<br />

statistika INT<br />

);<br />

Do tabu¾ky sme vložili dva záz<strong>na</strong>my:<br />

INSERT INTO Autori VALUES (1, 'Kuchtikova', 'Beata', 'beatka', 'b@b.<strong>sk</strong>', 0);<br />

INSERT INTO Autori VALUES (2, 'Sprtal', 'Ig<strong>na</strong>c', 'igi', 'i@i.<strong>sk</strong>', 0);<br />

Overenie údajov vykonáme pomocou jednoduchého SQL príkazu SELECT, kde pomocou<br />

podmienky v klauzule WHERE <strong>sk</strong>ontrolujeme priezvi<strong>sk</strong>o autora a súèasne aj jeho<br />

heslo, <strong>na</strong>príklad<br />

SELECT * FROM Autori WHERE priezvi<strong>sk</strong>o = 'Kuchtikova' AND heslo = 'beatka'<br />

Ak si tento príkaz <strong>na</strong>j<strong>sk</strong>ôr overíme pomocou konzoly databázového servera, zí<strong>sk</strong>ame<br />

presne taký výpis, ako oèakávame:<br />

ID_AUTORA PRIEZVISKO MENO HESLO EMAIL STATISTIKA<br />

---------- --------------- --------------- -------- ------------ ----------<br />

1 Kuchtikova Beata beatka b@b.<strong>sk</strong> 0<br />

Tento príkaz SQL musíme <strong>na</strong> stránke ASP zostavi zo zadaných údajov pomocou <strong>sk</strong>riptového<br />

kódu. V reálnej aplikácii by sme museli ešte <strong>sk</strong>ontrolova , èi používate¾om zadané<br />

údaje neobsahujú z<strong>na</strong>ky odporujúce syntaxi SQL. Kompletný výpis stránky vkladanie.asp<br />

je kombináciou <strong>sk</strong>riptového kódu a kódu HTML zadávacieho formulára:<br />

Redakcny system<br />

Pridavanie clankov<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!