Bankovní institut vysoká škola Praha Katedra informačních technologií a elektronického obchodování
Internetový obchod Popis důvodu vzniku internetových obchodů, jejich realizace a provoz Bakalářská práce
Autor:
Ondřej Procházka, DiS. Informační technologie, Manaţer projektů
Vedoucí práce:
Praha
Mgr. Bc. Miroslav Široký, DiS.
Červen, 2009
Prohlášení:
Prohlašuji, ţe jsem bakalářskou práci zpracoval samostatně a s pouţitím uvedené literatury.
………………………. V Písku dne 23. 6. 2009
Ondřej Procházka, DiS.
Poděkování
Děkuji tímto Mgr. Bc. Miroslavovi Širokému, DiS. za poskytnutí cenných rad a vedení mé bakalářské práce. Dále děkuji majiteli společnosti Czech Computer s.r.o. panu Josefu Matějkovi za souhlas se zmíněním údajů z internetových stránek www.czechcomputer.cz .
Anotace práce: Bakalářská práce se zabývá problematikou internetového obchodování. První kapitola popisuje vznik a vývoj internetových obchodů. Nastiňuje výhody i nevýhody provozování internetového obchodu a to z pohledu zákazníka i provozovatele. Popisuje, proč vlastně lidé nakupují „na dálku― a dají tomuto způsobu nákupu přednost před návštěvou klasického kamenného obchodu. Druhá kapitola popisuje provádění analýzy potřeb zákazníka a průzkumu trhu, pro který bude internetový obchod tvořen. Třetí kapitola se věnuje samotné realizaci projektu jednoduchého internetového obchodu a to z technického hlediska. Seznamuje s jazyky pro tvorbu internetových stránek, systémem PHP, databázemi, prostředím Apache a cookies. Čtvrtá kapitola bakalářské práce řeší optimalizaci internetového obchodu podle aktuálních trendů. Rozebírá, jak aplikovat nápady uţivatelů, nutnost správných strategických rozhodnutí a komunikaci s helpdeskem.
Annotation: The bachelor work deals with the online trade´s problems. The first chapter desribes the online shops´ rise and evolution. It illustrates advantages and disadvantages of running the online shop and that´s from the customer´s view as well as from the online shop operator´s. It describes the fact why do people actually do the shopping ―at a distance― and why do they prefer this way of shopping rather than visit classical stone shop. In the second chapter there is described the pursuance of analysis of customer´s needs and of market research for whom the online shop will be created. The third chapter attends directly to the project´s realisation of the simple online shop and that is from the technical point of view. It introduces the languages for web pages realisation, the PHP system, databases, Apache and cookies environment. The fourth chapter of the bachelor work solves the optimalization of the online shop according to current trends. It construes how to apply users´ ideas, necessity of right strategic decision and communication with helpdesk.
Katalogizační popis:
Příjmení a jméno autora:
Procházka Ondřej, DiS.
Instituce:
Bankovní institut vysoká škola, a.s.
Název bakalářské práce:
Internetový obchod
Podtitul práce:
Popis důvodu vzniku internetových obchodů, jejich realizace a provoz
Vedoucí práce:
Mgr. Bc. Miroslav Široký, DiS.
Počet stran:
63
Počet příloh:
11
Počet titulů bibliografie:
11
Klíčová slova: CRM Databáze Internetový obchod Jazyky pro tvorbu webových stránek
Obsah 1.
2.
3.
Vznik a výhody internetových obchodů .............................................................. - 10 1.1.
Vznik a vývoj internetových obchodů ............................................................. - 10 -
1.2.
Výhody internetového obchodu ....................................................................... - 12 -
Analýza potřeb zákazníka, průzkum trhu .......................................................... - 14 2.1.
Analýza potřeb zákazníka ................................................................................ - 14 -
2.2.
Průzkum trhu.................................................................................................... - 16 -
2.3.
Shrnutí .............................................................................................................. - 17 -
Realizace internetového obchodu ........................................................................ - 18 3.1.
Jazyky pro tvorbu stránek ................................................................................ - 18 3.1.1. HTML (HyperText Markup Language) ................................................... - 18 3.1.2. DHTML (Dynamic HTML) ..................................................................... - 20 3.1.3. XML (eXtensible Markup Language) ...................................................... - 22 3.1.4. XHTML .................................................................................................... - 24 3.1.5. CSS (Cascading Style Sheets) .................................................................. - 26 3.1.6. SGML ....................................................................................................... - 28 3.1.7. JavaScript ................................................................................................. - 29 3.1.8. Java Aplety ............................................................................................... - 31 -
3.2.
PHP: Hypertext Preprocesor ............................................................................ - 32 3.2.1 Vznik PHP ................................................................................................. - 32 3.2.2 Distribuce PHP .......................................................................................... - 33 -
3.3.
Databáze a jejich podpora v PHP..................................................................... - 34 3.3.1 Obecné pojetí databází............................................................................... - 34 3.3.2 MySQL ...................................................................................................... - 39 3.3.3 MS SQL Server ......................................................................................... - 41 -7-
3.4.
Apache (pouţití v Microsoft Windows) .......................................................... - 42 3.4.1 Staţení ....................................................................................................... - 42 3.4.2 Pouţití ........................................................................................................ - 42 -
3.5. 4.
Cookies ............................................................................................................ - 45 -
Optimalizace internetového obchodu podle aktuálních trendů ........................ - 49 4.1.
Dotazy a nápady uţivatelů / zákazníků ............................................................ - 49 -
4.2.
Strategické rozhodování................................................................................... - 51 -
4.3.
Komunikace s HelpDeskem............................................................................. - 53 -
4.4.
Shrnutí .............................................................................................................. - 54 -
Výsledky ........................................................................................................................ - 55 Závěry a doporučení..................................................................................................... - 56 Seznam použité literatury ............................................................................................ - 57 KLASICKÉ ZDROJE: ............................................................................................... - 57 ELEKTRONICKÉ ZDROJE: ..................................................................................... - 58 Seznam použitých zkratek ........................................................................................... - 59 Slovník ........................................................................................................................... - 61 Přílohy ........................................................................................................................... - 63 -
-8-
Úvod V současné moderní době zaujímá obchodování přes internet důleţité postavení na trhu. Procento nákupů uskutečněných prostřednictvím webových obchodů se stále zvyšuje, především díky rozšíření připojení na internet do většiny domácností a přijetí online nakupování jako jednoho ze standardních způsobů obchodování. Nemalou zásluhu na tomto růstu má zvýšení kvality internetových obchodů nejen po stránce technické, ale i příslušné legislativní úpravy. Občanský zákoník dává zákazníkům např. moţnost odstoupit od kupní smlouvy při jejím uzavření na dálku (rozhraní internetového obchodu, email apod.) do 14 dnů od převzetí zboţí. Legislativa ukládá provozovatelům zveřejňovat provozovatele internetového obchodu a kontakty na odpovědné osoby. Důvěra zákazníků se díky těmto krokům jiţ v podstatě posunula na úroveň hodnoty u kamenných obchodů. Vlastním cílem bakalářské práce je shrnout informace týkající se tvorby konkrétního projektu internetového obchodu, souvisejících technických prostředků a zároveň uţití marketingových nástrojů z obchodního hlediska. Zároveň pojednává o optimalizaci internetového obchodu a jeho přizpůsobení aktuálním trendům, které je důleţité vzhledem ke změnám na trhu.
-9-
1. Vznik a výhody internetových obchodů 1.1. Vznik a vývoj internetových obchodů První internetové obchody se objevily v USA. Jejich vznik je datován uţ v první polovině 90. let 20. století. V tomto období byl rozvoj relativně málo dynamický. Bouřlivý rozvoj však přišel aţ po roce 2000, kdy zaznamenalo podnikatelské prostředí geometrický nárůst internetových obchodů. Za rok 2008 se v České republice na internetu prodala 2 % z celkového prodeje zboţí. Internetové obchody byly v tomto roce zvláště úspěšné při prodeji elektroniky, které se na internetu prodalo 10 % z celkového prodeje. Odhady růstu internetových prodejů jsou optimistické, podle výzkumů uţivatelů internetu, který uskutečnila firma GfK Praha, 91 % uţivatelů internetu plánuje nákup přes internet také v budoucnu. Dokonce tak uvaţují dvě třetiny těch, kteří ještě nikdy online nenakupovali. V současné době nabízejí internetové obchody široké spektrum zboţí a sluţeb s vyuţitím pokročilých způsobů plateb a čím dál více se stávají alternativou kamenného obchodu nebo nákupního centra. Patří jiţ mezi standardní nákupní kanály a mnozí zákazníci by si ţivot bez nákupů přes internet jiţ takřka nedokázali představit. Velká část kamenných prodejen v dnešní době obchoduje zároveň přes internet. Tato forma podnikání pomáhá kamenný obchod zviditelnit ve smyslu získání nových zákazníků, kteří při svém hledání výrobku nebo sluţby na internetu mohou nalézt zcela neznámý obchod. Pro podnikatele jsou pak jeho internetové stránky výbornou a ne příliš nákladnou reklamou,
samozřejmě
za
předpokladu
dobře
technicky
zvládnutého
napojení
na internetové vyhledávače. Dnešní internetové obchody se svými funkcemi začínají posouvat do nových dimenzí. Uţ nestačí to, ţe jsou automaticky zákazníkovi nabízeny vhodné produkty, např. k tiskárně odpovídající náplně, ale aplikace internetového obchodu navíc sleduje algoritmus výběru zákazníka a doporučuje mu produkty ke koupi, o kterých si myslí, ţe by o ně mohl zákazník stát. Této funkcionality se dosahuje pomocí poměrně sloţitých úloh běţících na pozadí systému, který obsluhuje online aplikaci. Do databáze jsou zaznamenávány kombinace produktů, které zákazníci nakupují a jsou tvořeny pomyslné vzorové nákupy. - 10 -
Pokud jiný zákazník nakoupí např. dva stejné produkty jako jiný klient při nákupu o třech poloţkách, je prvnímu zákazníkovi automaticky nabídnut třetí produkt. Tato patří mezi současné novinky a těší se velké oblibě zákazníků, protoţe díky tomu, ţe pomáhá s výběrem, šetří čas klientů. Aby provozovatelé podpořili loajalitu a věrnost zákazníků, provozují často různé formy věrnostních programů. Zpravidla zákazník za své nákupy získává body, za které následně dostává dárky, slevy z dalších nákupů či konkrétní upomínkové předměty dané společnosti. Tato metoda je sice finančně náročná, ale je velmi účinná. V některých případech firmy hlídají částky za které zákazník nakoupil a po dosaţení určité výše (limitu) zákazník automaticky získává nějakou výhodu. To můţe být dárková poukaz, sleva několik procent na další nákupy nebo mnohdy hodnotný dar, např. voucher na dovolenou. Pouţívají se i metody technicky velmi jednoduché, přesto na některé zákazníky účinné. Jednou z nich je například oslovení zákazníka jménem po přihlášení na stránky. Pokud zákazník uvede datum narození, můţe mu být posláno přání k narozeninám, stejně tak k svátku. Díky neustále zvyšující se kvalitě internetových obchodů jsou provozovatelé nuceni vymýšlet další funkce a svých aplikací, aby tyto měli jako konkurenční výhodu a přilákali zákazníky.
- 11 -
1.2. Výhody internetového obchodu Na výhody internetového ochodu se lze dívat ze dvou pohledů a to očima zákazníka a také z hlediska provozovatele. Výhody z pohledu zákazníka: -
„otevřeno― 24 hodin denně, 365 dní v roce,
-
nákup z pohodlí domova,
-
fulltextové a parametrické vyhledávání produktu,
-
vyhledávání podle názvu zboţí či sluţby,
-
ceny jsou průměrně ve srovnání s kamennými obchody niţší,
-
odstranění front,
-
moţnost nechat se inspirovat z diskuzí a příspěvků u produktů.
Výhody z pohledu provozovatele: -
úspora personálních a materiálních nákladů,
-
nízké provozní reţie,
-
vyloučení chyb způsobených lidským faktorem,
-
moţnost integrovat a zautomatizovat marketingové nástroje,
-
moţnost představit zákazníkům kompletní nabídku,
-
zjednodušení obchodování se stálými zákazníky a dealery,
-
oslovení široké veřejnosti,
-
moţnost rozesílání informačních emailů zcela zdarma.
To, ţe oblíbenost nakupování přes internet stále roste a ţe výše uvedené výhody zákazníky lákají, potvrzují statistiky a výzkumy, podle kterých se podíl internetových obchodů na trhu stále zvětšuje. V počátcích fungování online obchodů byla jednou z největších slabin nedůvěra zákazníků. Nevěřili, ţe aplikace na webu skutečně funguje a ţe dostanou produkt, který si objednali. Také na ně velmi nepříznivě působila nejasná identita provozovatele, protoţe ten mnohdy ani nebyl zveřejněn a zákazník vlastně nevěděl, komu posílá své peníze. Toto se ale jiţ zásadně změnilo a kaţdý seriózní internetový obchod uvádí poměrně detailní informace o firmě. Navíc na nutnost zveřejnění těchto údajů pamatuje jiţ i zákon. Firmy - 12 -
zveřejňují např. fakturační adresu, adresu kamenných provozoven společnosti (poboček), IČO a DIČ. Mohou umoţňovat zobrazit Výpis z obchodního rejstříku, Osvědčení o registraci společnosti, Potvrzení o bezdluţnosti, Osvědčení o registraci plátce DPH apod. Např. společnost Czech Computer s.r.o. má na níţe uvedeném odkazu zpracováno takto: http://www.czechcomputer.cz/info.jsp?name=o_nas
Mezi další často uváděné informace patří poslání firmy, ve kterém společnost zákazníka informuje o tom, proč na trhu působí a jaké jsou její hlavní cíle. Většinou se snaţí společnost ukázat, ţe není jediným cílem vydělat peníze, ale např. i nějaký morálně vyšší cíl s edukační hodnotou. K získání důvěry zákazníka můţe také slouţit uvedení historie a profilu společnosti. Zde je zákazník seznámen s tím, kdy firma vznikla a jak se vyvíjela. Společnost zveřejňuje svoji strukturu a působí tak na zákazníka mnohem seriózněji. Řada firem investuje nemalé prostředky, aby si zajistila důvěru zákazníků pomocí certifikátu či osvědčení. Např. sdruţení obrany spotřebitelů poskytuje firmám, které splní dané podmínky certifikát, který firmy zveřejňují na svých internetových stránkách. Další moţností je získání certifikátu výjimečnosti, který propůjčuje organizace TÜV SÜD Czech. V neposlední řadě na zákazníky, jistě právem, velmi dobře působí drţení certifikátu ISO. Např. státní organizace mají drţení certifikátu ISO dodavatelskou firmou jako podmínku uskutečnění nákupu.
- 13 -
2. Analýza potřeb zákazníka, průzkum trhu 2.1. Analýza potřeb zákazníka Podnikatel, který uvaţuje o realizaci internetového obchodu, musí mít konkrétně a přesně definovaný produkt, se kterým se chystá obchodovat. Dalším stěţejním analytickým krokem je zjištění potřeba zákazníka. Analýza spotřebitele zahrnuje výzkum celé řady faktorů, které určují chování a způsob rozhodování individuálního spotřebitele i odběratele výrobku. Vyuţívá výsledky marketingového výzkumu, zejména výzkumu kupního rozhodování. Základem jsou poznatky psychologie a sociologie a při vyhodnocování výsledků pak matematické a statistické metody. Podnikatel nesmí uvaţovat podle své logiky, ale podle logiky trhu. Měl by si poloţit otázky jako: „Co bude zákazník chtít?― „Pro koho budou naše produkty určeny – kdo je zákazník.― „Kolik je za daný produkt ochoten zaplatit?― Na základě zjištěných údajů se obvykle provádí kalkulace ceny tak, aby byla konkurenceschopná a zároveň byla zachována poţadovaná marţe. Neméně důleţitým krokem je provedení analýzy konkurence. Cílem je získat informace o současné a potenciální konkurenci a rivalitě mezi firmami, které poskytují tentýţ produkt nebo alternativní způsob uspokojení dané potřeby. Firma musí neustále porovnávat své výrobky nebo sluţby, jejich ceny, prodejní cesty a způsoby. To umoţní identifikovat silné a slabé stránky podniku a podle toho volit i vhodnou marketingovou strategii. Metody pro zisk informací o konkurenci: pozorování konkurentů, studium reklamy, inzerce a dalších propagačních materiálů konkurentů, sledování a studium odborných periodik, návštěva výstav, kde konkurence vystavuje, rozhovory s obchodními poradci a zákazníky, vyznačení konkurence na mapě nebo plánku, zakoupení výrobku konkurenta a jeho studium, jednání s konkurentem „jako zákazník―, sledování veřejného mínění o výrobcích konkurence, získání pracovníka konkurence jako zaměstnance. - 14 -
Nemělo by se jednat o nárazově prováděnou činnost, analýza konkurence by měla mít charakter kontinuálního monitorovacího procesu. Při něm se ptáme a zjišťujeme, kdo vlastně naši konkurenti jsou, jaké jsou jejich hlavní cíle a jaké jsou silné a slabé stránky konkurence ve srovnání s naší společností. Po definování produktu, analýze zákazníka a konkurenta, jako představitelů nabídky a poptávky lze přikročit k analýze vnějšího prostředí. V této fázi hodnotíme jednotlivé dodavatele výrobků a sluţeb (např. materiálu pro výrobu našich produktů), včetně logistický sluţeb, distribuční mezičlánky (velkoobchod, maloobchod, obchodní zástupci), marketingové agentury, finanční instituce a veřejnost. Velmi často pouţívaným nástrojem je strategická analýza, která se skládá z analýzy šancí a rizik, analýzy slabých a silných stránek, analýzy ţivotního – trţního cyklu výrobků, analýzy zkušenostní křivky a portfolio analýzy. Analýza šancí a rizik má identifikovat prostředí podniku, ve kterém firma podniká. Sleduje chování poptávky, charakter vývoje a z případných nepravidelností dedukuje moţné příleţitosti a na druhé straně moţné hrozby, které mohou působit na výsledky podniku. Cílem analýzy a hodnocení šancí a rizik je vytvoření předpokladů pro správnou odpověď na otázku, jakým způsobem co nejefektivněji vyuţít příleţitostí, eliminovat a minimalizovat rizika. Analýza silných a slabých míst se někdy nazývá analýzou zdrojů. Hlavním úkolem je identifikovat a ocenit moţnosti podniku vyuţít příleţitosti a odvrátit hrozby v budoucnosti. Analýza ţivotního cyklu je těsně spjata s analýzou šancí a rizik, nicméně tvoří i relativně samostatnou analytickou oblast. Postupně se sleduje průběh cyklu od fáze zavádění, přes fáze růstu, nasycení, zralosti a poklesu. S tím je nutno spojit úvahu o moţných a nutných strategických aktivitách, které je nutno uskutečnit ve snaze ovlivnit průběh cyklu co nejefektivněji. Analýza zkušenostní křivky se orientuje na hodnocení vztahu podílu na trhu, nákladů a cen. Vychází se z toho, ţe v podnikatelské marketingové strategii hrají podíly na trhu dominantní roli. Vytváří určitý potenciál podnikatelské úspěšnosti. Je zaloţen na poznatku, ţe s rostoucím podílem na trhu při konstantní ceně se můţe dosáhnout i významného sníţení nákladů. Portfolio analýza zajišťuje hodnocení postavení strategických podnikatelských jednotek (výrobků, skupin výrobků, provozů, závodů podniku). Na základě portfolio analytické matice je moţno členit strategické podnikatelské jednotky (výrobky, oblasti podnikání apod.) podle potenciální výnosnosti (zisku). - 15 -
2.2. Průzkum trhu Obecně platí, ţe ve vyspělých ekonomikách není tak těţké vyrobit, ale můţe být problém naše produkty prodat. Proto je rozhodně velmi důleţitým krokem správně provedený průzkum trhu, na kterém se chystáme podnikat nebo jiţ podnikáme. Průzkum trhu je činnost, při které zjišťujeme okamţitý stav trhu, operativní změny a směry jeho vývoje. Cílem průzkumu trhu je vytvoření předpokladů, díky kterým budeme schopni předvídat vývoj trhu, tzn. vývoj poptávky, potřeb a přání zákazníků i chování konkurenčních společností. Průzkum trhu je moţné provést dvěma způsoby. Můţeme zůstat v kanceláři, anebo vyrazíme do terénu. Při průzkumu od stolu pracujeme s informacemi, které jsou ve firmě nebo mimo ni běţně k dispozici. Tyto informace musíme utřídit, zpracovat a vyhodnotit. Tímto způsobem je moţné odhadovat změny ve spotřebě, sledovat výkyvy prodeje v různých obdobích roku, trţní ţivotnost výrobků, účinnost propagace nebo pracovat s přehledy cen. Jednodušší průzkumy můţe provést i jednotlivec. V případě sloţitějších průzkumů se doporučuje najmout profesionální agenturu. V případě průzkumu trhu prováděného v terénu se zaměřujeme na chování zákazníků, chování konkurence a na zboţí. Při zkoumání chování zákazníka sledujeme motivy nákupního chování, tzn. proč vlastně kupují, jestli prodávané výrobky splňují jejich přání a potřeby. Sledujeme, zda dochází k reklamacím, s jakou četností nakupují, jaké jsou nákupní zvyklosti a jaká je kupní síla. Snaţíme se v podstatě zjistit co, kde, komu, kolik, jak a kdy se má prodávat. Při zkoumání chování konkurence zjišťujeme, jakými metodami konkurence pracuje, zda bude rozšiřovat nebo omezovat nabídku zboţí a sluţeb, jestli pracuje na inovaci výrobků nebo výrobního programu, za jaké ceny prodává, jaké další sluţby při prodeji výrobků zákazníkům poskytuje. U zboţí zjišťujeme uţitné vlastnosti, vnější vzhled, kvalitu, cenu, balení nebo vliv na ekologii. Správně provedeným průzkumem trhu rozhodně ušetříme nemalé finanční prostředky, samozřejmě za předpokladu dobrých rozhodnutí při řešení strategických otázek, které vyvstaly z výsledku průzkumu. Díky přesnému zacílení neinvestujeme zbytečně do nerentabilních oblastí, ale naopak se zaměřujeme na nejziskovější segmenty, uspokojení potřeb zákazníka.
- 16 -
2.3. Shrnutí Internetové obchody vznikly v první polovině 90. let 20. století v USA. Po roce 2008 zaznamenalo internetové obchodování velmi dynamický rozvoj. V dnešní době je nakupování přes internet díky svým výhodám velmi oblíbené a tato oblíbenost stále roste. Mezi hlavní výhody patří dostupnost obchodu 24 hodin denně, 7 dní v týdnu, 365 dní v roce. Díky celkově niţším fixním nákladům mají internetové obchody zpravidla niţší ceny neţ kamenné obchody. Pro úspěšné podnikání v oblasti internetového obchodu je důleţité nejen mít správný produkt, ale také provést analýzu potřeb zákazníka, konkurence a vnějšího prostředí. Nesmíme také zapomenout na korektně a důkladně zpracovaný průzkum trhu.
- 17 -
3. Realizace internetového obchodu 3.1. Jazyky pro tvorbu stránek 3.1.1. HTML (HyperText Markup Language) První definici jazyka HTML vytvořil v roce 1991 Tim Berners–Lee jako součást projektu WWW, který měl umoţnit vědcům zabývajících se fyzikou vysokých energií komunikací a sdílení výsledků výzkumu po celém světě. Ne náhodou proto celý projekt vznikal v CERNu (Cente Européenne de Rechere Nucléaire – Evropské centrum jaderného výzkumu), které leţí na švýcarsko–francouzských hranicích nedaleko Ţenevy. Tato verze HTML je známá pod označením 0.9. Umoţňovala text rozdělit do několika logických úrovní, pouţít několik druhů zvýraznění textu a zařadit do textu odkazy a obrázky. [1] Berners–Lee při návrhu HTML nepředpokládal, ţe by autoři www–stránek museli tento jazyk znát. První verze www–softwaru byla napsána pro operační systém NextStep a obsahovala jak prohlíţeč, tak i integrovaný editor www–stránek. Kdyţ však Marc Andersen se svými kolegy z NSCA (National Center for Supercomputing Applications) psal známý prohlíţeč Mosaic, povaţoval za příliš obtíţné implementovat do programu rovnou i editor HTML. Díky tomuto rozhodnutí a tomu, ţe ne kaţdý provozuje na svém počítači NextStep, je dnes nutné, aby autoři profesionálních www–stránek znali HTML. Poţadavky uţivatelů na www vzrůstaly, a tak producenti různých prohlíţečů obohacovali HTML o některé nové prvky. Aby byla zachována kompatibilita mezi jednotlivými modifikacemi HTML, vytvořil Berners–Lee pod hlavičkou IETF (Internet Engineering Task Force) návrh standardu HTML 2.0, který zahrnoval všechny v té době běţně pouţívané prvky HTML. Verze HTML 2.0 má zároveň dvě úrovně. První z nich (Level 1) pouze málo rozšiřuje předchozí verzi HTML. Level 2 navíc definuje práci s formuláři. Specifikaci HTML 2.0 nalezneme v RFC dokumentu číslo 1866. [1] Další rozšíření jazyka známá jako HTML+ zahrnují zejména rozšíření HTML o vytváření tabulek a matematických vzorců. Rovněţ se zde objevují prvky, které umoţňují precizněji kontrolovat výsledný vzhled textu – lepší obtékání obrázků textem a styly dokumentů. Dave Ragett z laboratoří Hewlett–Packard HTML+ formalizoval a vytvořil jeho deklaraci DTD (Document Type Declaration) v jazyce SGML (Standard
- 18 -
Generalized Markup Language) – na jaře roku 1995 tak vznikl návrh standardu HTML 3.0. Některé prvky HTML 3.0 jako např. tabulky, podporovaly novější verze prohlíţečů Mosaic a Netscape. Kompletní podporu pro všechny rysy HTML 3.0 nabízel pouze experimentální prohlíţeč Arena. Ten je k dispozici bohuţel pouze pro operační systém Unix. Na počátku roku 1996 jiţ bylo jasné, ţe HTML 3.0 bylo tak mohutným skokem vpřed, ţe se nenašel nikdo, kdo by dokázal implementovat prohlíţeč s jeho podporou. Vývoj standardů Webu v té době jiţ koordinovalo konsorcium W3C (Word Wide Web Consorcium), jehoţ členy jsou mimo jiné přední softwarové firmy. Členové W3C se tedy shodli na vlastnostech, o které se rozšíří HTML 2.0, a vytvořili tak HTML 3.2. Tato verze však zdaleka neobsahuje vše z HTML 3.0. Z verze 3.0 zbyly v podstatě jen okleštěné tabulky. Ostatní nové prvky HTML 3.2 jsou jen jakousi směskou, kterou v té době podporovaly nejnovější prohlíţeče. Opakoval se tedy v podstatě stejný postup jako při vzniku verze 2.0 – jazyk se sjednotil na průniku moţností těch nejrozšířenějších prohlíţečů. Kromě tabulek přibyly ve verzi 3.2 zejména moţnosti lepší kontroly formátování včetně mnohem volnějšího výběru pouţitých druhů písma – logický ústupek poţadavkům na graficky perfektně vypadající stránky. Další podstatné rozšíření se týkalo podpory Java–apletů. Tato verze HTML nese kódové jméno Wilbur a od ledna 1997 byla doporučením konsorcia W3C – znamená to, ţe by ji měli všichni pouţívat, aby byla na Webu zajištěna kompatibilita. [1] Většina prohlíţečů však jiţ nabízela další rozšíření nad rámec HTML 3.2. Jejich pouţívání bylo však dvousečné – na jednu stranu nejsou nijak standardizována a některé prohlíţeče jim nemusí rozumět, na druhou stranu jsou mnohdy velmi uţitečná a jejich pouţívání a rozšíření urychlilo jejich zařazení do standardu. Mezi takováto rozšíření patřili například rámy (frames) a různé skriptovací jazyky (např. JavaScript). Dalším hitem, který s HTML úzce souvisí, jsou kaskádové styly dokumentů – CSS (Cascading Style Sheets), které jsou doporučením W3C od prosince 1996. Jsou podporovány nejrozšířenějšími prohlíţečem (NN, MSIE). Na jaře roku 1997 zveřejnilo W3C další plány na rozšíření HTML pod kódovým názvem Cougar. Cougar v sobě zahrnuje HTML 3.2 společně s běţně pouţívanými konstrukcemi jako jsou rámy, skripty a obecné vkládání objektů. V červenci 1997 uveřejnilo W3C HTML 4.0, které vzniklo drobnými úpravami Cougaru a vytvořením jednoho komplexního dokumentu popisujícího návrh standardu. - 19 -
3.1.2. DHTML (Dynamic HTML) Na vývoji HTML je vidět, ţe neustále vzrůstaly poţadavky na podporu HTML v multimédiích. Nejprve byly přidány obrázky, pak moţnosti vkládání Java–apletů. Zhruba ve stejné době začalo být moţné oţivení stránek pomocí JavaScriptu. Dalším krokem, který umoţnil vytvářet ještě více interaktivní stránky je dynamické HTML. Dynamické HTML poprvé představila firma Microsoft ve svém prohlíţeči Internet Explorer 4.0. Velkou výhodou DHTL je, ţe do samotného jazyka HTML nepřidává nic nového. Pouze rozvíjí moţnosti, které je moţno dosáhnout pomocí stylů a skriptů. Stránky, vytvářené v HTML, byly ve své podstatě statické. Sice je mohl automaticky vygenerovat server nebo před jejich zobrazením byly upraveny skriptem, ale během prohlíţení v prohlíţeči se neměnily. Dynamické HTML umoţňuje během prohlíţení stránky měnit obsah jednotlivých elementů a atributů, přidávat a ubírat elementy. Kromě toho lze během prohlíţení měnit i styly, coţ se na výsledném zobrazení dokumentu můţe výrazně promítnout. Aby byly moţnosti téměř dokonalé, byla definice stylů rozšířena o moţnost libovolně měnit viditelnost a umístění kaţdého elementu v 2,5D prostoru. Aby mohly být pomocí skriptů prováděny všechny výše uvedené činnosti, bylo zapotřebí definovat jednotný způsob pro přístup k jednotlivým dokumentům, atributům dokumentu a vlastnostem stylu. Teoreticky tyto poţadavky definuje konsorcium W3C v DOM (Document Object Model) – objektovém modelu dokumentu. [1] Explorer 4.0 jde však dál a tyto poţadavky i prakticky implementuje. Staví přitom na objektovém modelu Netscape pouţitém v JavaScriptu, který dále rozšiřuje. Základním objektem je window, přes který jsou dostupné všechny další objekty. Nejdůleţitějším objektem je document, který v sobě zahrnuje všechny objekty a vlastnosti, vztahující se k aktuálnímu dokumentu. Na jednotlivé dokumenty v hierarchii se odvoláme pomocí tečkové notace: window.screen, window.document, window.body. Protoţe je objekt document nejpouţívanější, můţeme před ním vynechat specifikaci nadřazeného objektu window. Zkráceně tedy můţeme psát window.screen, document, document.body. Na dalších niţších úrovních v objektové hierarchii mohou být buď další objekty nebo přímo vlastnosti a metody jednotlivých objektů. Z principu práce DHTML vyplývá, ţe stránky budou bez problémů pracovat i s prohlíţeči, které dynamické HTML nepodporují. Jedinou vadou bude to, ţe se daná - 20 -
operace, napsaná v DHTML, neprovede (např. se po přejetí myši nezmění zarovnání textu nebo barvy nadpisu), coţ ovšem nijak dramaticky nesníţí informační hodnotu stránky. U objektů, které odpovídají elementům stránky, máme k dispozici vlastnost i objekt style. Pomocí vlastnosti style můţeme přistupovat k definici stylu elementu stejně jako pomocí atributu STYLE. Díky DHTML byly styly rozšířeny o řízení pozice elementů. To umoţňuje přesně řídit vzájemné umístění jednotlivých elementů na stránce. Mezi nejdůleţitější nové vlastnosti patří left a top, které určují posunutí elementu. Jejich konkrétní interpretace však závisí na hodnotě vlastnosti position. Ta můţe nabývat dvou hodnot – absolute a relative. Při absolutní určení pozice je tento element zobrazen zcela nezávisle na svém původním umístění. Jeho levý horní roh se posune do místa zadaného pomoci left a top. Souřadnice se vztahují k souřadnému systému nadřazeného elementu a tím je nejčastěji celý dokument. Jeho levý horní roh má souřadnice (0,0). Jako hodnotu left a top můţeme pouţít buď pixely (px) nebo procento, které se vztahuje k šířce a výšce rodičovského elementu. Šířku, do které se bude formátovat obsah elementu, můţeme určit pomocí atributu width. Výška se pak upraví podle potřeby. I tu však lze nastavit pomocí vlastnosti height. Absolutně umístěné elementy se mohou překrývat. O tom, který element bude vidět, rozhoduje vlastnost z–index. Element, který ji má nastavenou na vyšší hodnotu, překryje ty ostatní. [1] Pokud pouţijeme relativní určení pozice, element se pouze posune ze své přirozené pozice o délku určenou pomocí left a top. Jeho formátování přitom zůstane zachováno. Text v nadřazeném elementu zůstane zformátován tak, jako by posunutý element nebyl vůbec posunut. Tohoto jevu se v praxi často vyuţívá při stínování nadpisů. Další důleţitou vlastností je visibility. Můţe nabývat dvou hodnot – visible a hidden. První z nich říká, ţe element bude vidět. Druhá vyjadřuje skrytý element. Tuto vlastnost musíme odlišit od vlastnosti display. Její hodnota display: none způsobí, ţe element se bude zcela ignorovat, jakoby na stránce vůbec nebyl. Oproti tomu visibility: hidden vynechá pro element místo, element pouze nebude vidět. To lze vyuţít pro různé efekty, pokud máme několik elementů zobrazených přes sebe.
- 21 -
3.1.3. XML (eXtensible Markup Language) XML je definice vytvořená pracovní skupinou W3C jako formát pro přenos obecných dokumentů. Princip XML je zaloţen na jednoduché myšlence přenášet jako součást dokumentu i popis jeho struktury – přenášet spolu s daty i „metadata―. Při návrhu XML autoři vyuţili podmnoţinu staršího a obecnějšího standardu SGML (Standard Generalized Markup Language – ISO 8879). Dokumenty v XML jsou tedy automaticky i dokumenty SGML (XML je aplikace SGML). SGML je ale sloţitější a komplikovanější, coţ je pravděpodobně příčina, proč zatím nedošlo k jeho širšímu uţití. Podle standardu SGML byl navrţen i formát dokumentů HTML, který slouţí pro prezentaci dokumentů v rámci sítě. Sada značek HTML je pevná a slouţí k vyjádření prezentační podoby dokumentu. Pomocí značek XML vyznačíme syntaktickou strukturu dokumentu. Sémantika obsahu není pomocí XML definována. Součástí definice XML je i definice nástroje, který se nazývá XML–procesor. Jeho úkolem je „nastudovat― gramatiku dokumentu a poté zpracovávat dokumenty dle této gramatiky. Význam XML spočívá v tom, ţe struktura dokumentu je známá a lze ji kontrolovat a zpracovat obecnými nástroji. Libovolná aplikace si můţe strukturu dokumentu zjistit a podle této struktury jej libovolně zpracovat. Poznamenejme, ţe pro účely zpracování a prezentace XML–dokumentů byl zaveden další standard – XSL (eXtensible Stylesheet Language), kterým lze popsat transformaci jednoho XML–dokumentu na jiný dokument (např. na HTML–dokument, který pak lze prezentovat). [1] XML je formát pro reprezentaci a přenos obecných dokumentů. Definice XML obsahuje dvě části: definici co to je XML–dokument a definici programů, které zpracovávají XML–dokumenty. Kaţdý XML–dokument má fyzickou a logickou strukturu. Fyzicky je sloţen z entit. Kaţdá entita obsahuje buď z hlediska XML rozpoznatelná data nebo data nerozpoznatelná. Rozpoznatelná data jsou sestavena ze znaků a představují buď znaková data nebo značky (markups). Logicky se XML–dokument skládá z deklarací a elementů. Deklarace slouţí pro definici entit, elementů a popis struktury dokumentu. Elementy pak tvoří vlastní obsah dokumentu. Speciálními elementy jsou i komentáře či instrukce určené pro zpracování jinou aplikací. Logické elementy jsou v dokumentu vyznačeny značkami. XML poskytuje mechanismy pro omezení logické struktury a rozloţení dokumentu. Datový objekt je XML–dokument, pokud je dobře vytvořen (WF – Well Formed) podle definice XML–dokumentu. Kaţdý dobře vytvořený XML–dokument můţe být navíc správný (valid), pokud splňuje další omezení správnosti (VC – Validity - 22 -
Constraints). XML–procesor je modul, který umí číst XML–dokumenty a zpřístupňuje elementy aplikacím. Můţe být validující – pak umí kontrolovat omezení správnosti XML– dokumentů, jinak pouze kontroluje, zda se jedná o dobře vytvořený dokument a zda je dobře uzávorkován. Definice syntaxe XML–dokumentů říká, ţe kaţdý dobře vytvořený XML–dokument začíná prologem, který označuje verzi XML a případně definuje typ dokumentu. Prolog s deklarací verze XML má tvar: Součástí prologu je i deklarace typu XML dokumentu, která určuje gramatiku třídy dokumentů. Gramatika můţe být v XML–dokumentu obsaţena přímo, nebo se lze odkazovat na externí entitu, která tuto gramatiku obsahuje, nebo obojí. Potřeba nezávislého formátu pro reprezentaci a přenos obecných dokumentů je nesporná. Oproti dříve zavedeným formátům (jako např. EDIFACT) se formát XML zdá být výhodným kompromisem mezi vyjadřovací silou a jednoduchostí. Aplikační moţnosti jsou přímo neuvěřitelné. Uvaţme například přenos dat mezi různými databázovými systémy, přenos textů mezi různými textovými systémy apod. [1]
- 23 -
3.1.4. XHTML Jazyk pro tvorbu HTML stránek, respektive jeho poslední verze, pomalu začíná být zastaralá a na webu se objevují stránky vytvářené v novém jazyku, jeho nástupci pojmenovaném XHTML. Jazyk XHTML je vlastně HTML verze 4.01 upravená jako aplikace XML. Má přísnější pravidla a klade větší důraz na čistotu a správnost zdrojového kódu. Jeho název vznikl ze zkratky anglického eXtensible Hypertext Markup Language, a jeho tvůrcem je W3C (http://www.w3c.org). XHTML by mělo postupem času nahradit stávající HTML stránky a umoţnit tak přenositelnost dat mezi všemi platformami i technologiemi (mobilní telefony, palmtopy, webové kiosky). Ta je zajištěna tím, ţe XHTML je aplikace XML. [1] XHTML přináší oproti HTML 4.01 řadu změn. Abychom měli své stránky kompatibilní se standardem XHTML 1.0, je nutné dodrţovat následující pravidla: Všechny tagy musí být uzavřené. Uţ tedy neexistuje formulace:
ahoj ,ale jen:
ahoj
. Nepárové tagy musí být také uzavřeny, nemůţe se tedy pouţít
, ale
,
popř.
. Formulaci
přeloţí jak nové prohlíţeče, tak i ty, které nejsou pro zobrazování XHTML tvořeny. I kdyţ jsou všechny tři formulace správné, je důrazně doporučováno pouţívat výhradně
, jelikoţ zbylé dva tagy interpretují starší browsery odlišně. Všechny tagy musí mít svou hodnotu a nesmí být pouţity jenom jako přepínače. Takţe ne
, ale
. Dále je třeba si dát pozor na správné vnořování tagů. Špatný zápis je
ahoj
. Správný zápis by byl
ahoj
. Podle definice XML musí být tagy i atributy psány malými písmeny. Všechny hodnoty atributů musí být v uvozovkách. Při nedodrţení této podmínky je moţné, ţe stávající prohlíţeč tento problém překoná, ale modernější verze jiţ nikoliv. Je třeba si uvědomit, ţe XHTML je nositelem informací, ne však grafického vzhledu. K tomu poslouţí lépe jiné jazyky (CSS, XSL apod.). Pokud máme jiţ stránky napsány a nechce se nám je ručně přepisovat, pak si můţeme pomocí programu s názvem TIDY HTML převést dokument do XHTML. Najdeme ho na http://www.w3c.org/status.html#tidy. Kaţdá XHTML stránka musí začínat hlavičkou, ve které je deklarováno DTD, pouţité kódování a informace o verzi XHTML. Takţe hlavička by mohla vypadat například takto: Tato hlavička prohlíţeči říká, ţe stránky jsou napsány v jazyce XML a pouţívají znakovou sadu iso 8859–2, tedy standardní kódování písma pro češtinu. Pokud jsme dosud - 24 -
tvořili stránky v kódování windows–1250, je čas na změnu, jelikoţ XML totiţ kódování windows–1250 nepodporuje. [12] Tady se prohlíţeč dozví, ţe se jedná o jazyk XHTML verze 1.0, a kde najde DTD (Dokument Type Definition). V současné době je k dispozici uţ i verze 1.1, coţ je ale jenom verze XHTML 1.0 se striktní definicí DTD (neobsahuje odmítnuté – deprecated – tagy). Zde je uloţena informace o tom, v jakém národním jazyce jsou stránky napsány. Velmi důleţité je uvést do hlavičky meta–tag, obsahující informace o pouţitém kódování, kvůli starším prohlíţečům. Bude vypadat takto: <meta http–equiv=“content–type“ content=“text/html; charset=iso–8859–2“ /> Hlavním důvodem přechodu na XHTML je technologická omezenost HTML 4.01, které uţ nic nového nenabídne. Proto se i v souvislosti s vývojem prohlíţečů se kompletně přejde na jazyky zaloţené na XML.
- 25 -
3.1.5. CSS (Cascading Style Sheets) Původně byl jazyk HTML navrţen tak, aby pomocí něj šlo snadno vyznačit jednotlivé logické části dokumentu. Web se však rozšířil i do komerční sféry a vznikly tak poţadavky na lepší kontrolu nad grafickým vzhledem dokumentu. Tyto poţadavky byly uspokojeny přidáním atributů jako je ALIGN (zarovnání) a elementů jako FONT (písmo) pro lepší ovládání vzhledu a formátování dokumentu. Kromě toho mnohé prohlíţeče nabízely nepřeberné mnoţství proprietárních rozšíření HTML, která umoţnila lepší kontrolu nad výsledným vzhledem stránky. Pouţití těchto technik mělo dva neblahé účinky. Za prvé se v HTML–dokumentech místo jejich struktury začal vyznačovat spíše grafický vzhled. Druhá nevýhoda spočívala ve velké pracnosti a neflexibilitě tohoto řešení – způsob formátování se musel nastavit jednotlivě pro kaţdý element dokumentu. [1] Obě tyto nevýhody odstraňují kaskádové styly (CSS). Pomocí stylu lze jednoduše definovat druh písma, způsob zarovnání, barvu a další vlastnosti elementu. Tato definice se pak pouţije jednotně v celém dokumentu. V dokumentu se pak zaměříme pouze na strukturu informace – grafický vzhled je definován stylem. V jednom dokumentu můţe být pouţito několik stylů, které se navzájem doplňují. A naopak. Jeden styl můţe být pouţit společně s neomezeným počtem stránek, které tak získají jednotný vzhled. Práce se styly je velmi jednoduchá. Např. tento jednoduchý styl zajistí, ţe všechny nadpisy H1 budou zobrazeny modře: H1 { color: blue }. Tento jednoduchý styl se skládá z jednoho pravidla. Kaţdé pravidlo má dvě části – selektor (H1) a deklaraci (color: blue). Deklarace se skládá ze dvou částí – z vlastnosti (color) a z její hodnoty (blue). Selektor zajišťuje vazbu na odpovídající HTML element. Jako selektor mohou být pochopitelně pouţity všechny elementy HTML. Vlastností, které je u kaţdého elementu moţné pouţít, je několik desítek. CSS nám nabízí mnohem lepší správu barev. Barva se na počítači vyjadřuje tzv. aditivním způsobem, tedy mícháním tří základních barev – červené (Red), zelené (Green) a modré (Blue) – tzv. systém RGB. Jsme takto schopni vyjádřit jakoukoliv barvu spektra. V jazyce HTML se barva zapisuje uvedením těchto tří sloţek v hexadecimálním (neboli šestnáctkovém) tvaru za sebou (např: #FFFFFF) nebo přímo klíčovým slovem definujícím určité odstíny barev (např. white). V kaskádových stylech jsou podporovanými jednotkami barev oba uvedené způsoby, zadávání RGB sloţek je zde navíc poněkud rozšířeno. - 26 -
Vyjádření barvy zadáním klíčových slov (16 základních barev): aqua – jasně modrozelená, black – černá, gray – šedá, green – zelená, lime – citronově zelená, maroon – kaštanově hnědá, navy – tmavě modrá, olive – olivová, purple – purpurová, red – červená, silver – stříbrná, teal – tmavě modrozelená, white – bílá, yellow – ţlutá. Vyjádření barvy RGB sloţkou: 1) #RRGGBB – RR/GG/BB je 0–FF (hodnota v hexadecimálním / šestnáctkovém tvaru) – tedy 256 stupňů (FF hexadecimálně = 255 decimálně / desítkově), nesmíme zapomínat na to, ţe 0 je také jeden stupeň). 2) #RGB – kde R/G/B je 0–F – tedy 16 stupňů. 3) rgb (x,y,z) – kde x/y/z je v rozsahu 0–255 a 4) rgb (x%, y%, z%) – kde x/y/z/ jsou procentuální hodnoty v rozsahu 0–100, udávají intenzitu dané sloţky ve výsledné barvě. Znamená to tedy, ţe výsledná barva můţe být sloţena z 0 – 100 % červené barvy, 0 – 100 % zelené barvy a 0 – 100 % modré barvy. Dílčí procenta se pak přepočítávají na poměrnou část ze 100 % výsledné barvy.
- 27 -
3.1.6. SGML SGML (Standard Generalized Markup Language) je definován normou ISO 8879 z roku 1986. Jde o metajazyk, který slouţí k definování různých značkovacích jazyků. Této definici se říká DTD (Document Type Definition). DTD mimo jiné obsahuje definici všech elementů, jejich přípustných vztahů a atributů, které lze v dokumentu pouţít. Tato definice je díky SGML zapsána ve zcela standardizované podobě a proto můţe být snadno zpracovávána počítači. Celé si to můţeme představit tak, ţe SGML je něco jako programovací jazyk. Kaţdé DTD je pak program, zapsaný v SGML. DTD definuje pouze, jakou můţe mít dokument syntaxi – jména elementů, jejich pouţívání. Význam (sémantiku) jednotlivých elementů však musíme definovat jinak. Např. pro HTML obsahuje jeho specifikace popis pouţití všech elementů – autor tak ví, k čemu který element pouţít. Pro prohlíţeč je zase naopak důleţité vědět, jak se má obsah jednotlivých elementů zobrazit – tuto definici můţe mít v sobě prohlíţeč zabudovanou napevno nebo můţe vyuţívat např. styly, které definují vzhled jednotlivých elementů. My můţeme vytvářet SGML–dokumenty, které vyhovují určitému DTD. SGML– dokument je textový soubor, který obsahuje text označkovaný pomocí tagů definovaných v DTD. Existují programy, tzv. pazdery, které kontrolují, pouţijeme–li pouze ty elementy a atributy, které jsou v DTD definovány, a mezi elementy existují pouze přípustné vztahy. Aby pazder věděl, které DTD jsme v dokumentu pouţili, musí kaţdý SGML–dokument začínat prologem. Prolog má tvar , kde odkaz na DTD můţe mít několik tvarů. V HTML stránkách se ale pouţívá výhradně . Pak můţeme naše stránky kontrolovat pazderem. Pokud je pazder správně nakonfigurován, nalezne DTD odpovídající HTML 4.0 a dokument zkontroluje. [1]
- 28 -
3.1.7. JavaScript Jazyk HTML má jen velmi omezené moţnosti prezentování informací. Stránky, napsané výlučně v něm, vypadají stejně ráno, v poledne i večer. Jsou tzv. statické – nemění se v závislosti na čase a ani nereagují na konání návštěvníka stránky. Toho si všimli i zástupci firmy Netscape. Postupně, jak se v 90. letech Web začal rozvíjet, si společnost Netscape stanovila, ţe vypracuje nový doplňující programovací jazyk. Jejím hlavním cílem bylo připravit takový programovací jazyk, který je interpretován na straně klienta (návštěvníka stránky). To znamená, ţe pokud si vytvoříme HTML–stránku obohacenou o nějaký javascriptový program, tak k provedení (spuštění) tohoto programu nedojde na serveru, kde máme uloţené své webové stránky. K provedení programu dochází aţ na počítači, na kterém si tuto stránku prohlíţíme. Laicky řečeno, kdyţ si např. doma prohlíţíme nějaké vzdálené stránky, tak se všechny javascriptové programy, které tato stránka obsahuje, přenesou na náš domácí počítač a na něm i v zápětí spustí. Z toho plynou moţnosti i omezení JavaScriptu. Jedno z hlavních omezení souvisí s prací se soubory. JavaScript, jelikoţ se spouští na počítači u návštěvníka stránky, z pochopitelných důvodů nedokáţe uchovávat, měnit nebo vymazávat soubory nacházející se na webovém serveru. Z toho vyplývá, ţe i kdybychom byli velkými odborníky, v JavaScriptu nedokáţeme naprogramovat např. diskusní stránku a ani knihu návštěv. Zprávu, kterou by nám chtěl návštěvník odevzdat, bychom nedokázali uloţit na webový server. [4] Co se týče manipulace se soubory, které se nacházejí na počítači u návštěvníka stránky, tak teoreticky by to JavaScript mohl zvládnout. Ale z bezpečnostních důvodů tvůrci JavaScriptu takové funkce do JavaScriptu nezabudovali. Nehledě na tato „dobrá― omezení je JavaScript celkem pruţná programovací jazyk. S jeho pomocí je moţné do svých stránek zabudovat nespočetné mnoţství grafických efektů, které by zjednodušovaly navigaci mezi našimi stránkami. Dokáţeme vytvářet stránky, které by řešily sloţité matematické úlohy. Našli se i programátoři, kteří dokázali naprogramovat plnohodnotné hry. Skripty se na Webu nikdy nevyskytují samostatně – jejich funkce je vţdy vázaná na určitou stránku HTML. A právě tento fakt má vliv i na jejich umístění. Buď skripty umístíme přímo do vnitřku stránek HTML, a nebo je umístíme do externích souborů s příponou .js s tím, ţe se na příslušných stránkách HTML na ně odvoláme.
- 29 -
Umístění skriptů do HTML–stránky nám zajišťuje párový tag <SCRIPT>, který prohlíţeči stránek určuje, ţe to, co se v něm nachází, se nemá vypsat, ale provést (spustit). HTML–tag SCRIPT obsahuje ještě parametr LANGUAGE. Tento parametr se pouţívá ke specifikování druhu pouţitého skriptového jazyka na stránce. V případě JavaScriptu uvádíme LANGUAGE=―JavaScript―. Kromě JavaScriptu známe ještě další jazyky, nejznámější je z nich je VBScript. Ten však není na Webu aţ tak často vyuţíván, protoţe jeho klientskou podobu nepodporuje prohlíţeč stránek Netscape Navigator. Tagy jeho konec. Jsou potřebné z toho důvodu, aby starší prohlíţeče, které JavaScript nepodporují, nevypisovaly na obrazovce jednotlivé části skriptu. [4] Nejdůleţitější částí skriptu je jeho střední část. Konstrukce document.write() provádí samotný výpis textu na ploše prohlíţeče. Avšak je třeba zdůraznit, ţe tato konstrukce nedokáţe vypsat jen čistý text, ale podporuje i všechny HTML–tagy.
- 30 -
3.1.8. Java Aplety Java–aplet je program v jazyce Java, který je součástí stránky. Nejčastěji se aplety vyuţívají pro vkládání animací, interaktivních grafik apod. Můţeme je však pouţít v podstatě k čemukoliv – záleţí na schopnostech programátora, který aplet napsal. Programy v Javě mají příponu .java. Pro jejich pouţití na stránkách je musíme zkompilovat do speciálního tvaru – tzv. bajtového kódu (byte code). Zkompilované aplety mají příponu .class. Bajtový kód není spouštěn přímo operačním systémem počítače, ale speciálním interpretem – virtuálním strojem (virtual machine). Ten odstiňuje rozdíly jednotlivých platforem a umoţňuje tak programy napsané v Javě spouštět na libovolném počítači. [1] Do stránek se aplety vkládají pomocí elementu APPLET. Nejdůleţitějším atributem je CODE. Ten určuje jméno apletu, který chceme spustit. Stejně důleţité jsou i atributy WIDTH a HEIGHT, které určují rozměry apletu v pixelech. Toto místo se pak na stránce vyhradí pro potřeby apletu – aplet zde můţe psát, kreslit, zjišťovat pozici myší apod. Jelikoţ pro samotnou stránku je aplet pouhá obdélníková oblast, můţeme podobně jako u obrázků řídit zarovnání s okolním textem pomocí atributu ALIGN. Vzdálenost apletu od okolního textu ovlivňují atributy HSPACE a VSPACE. U apletů můţeme podobně jako např. u obrázků pouţít atribut ALT, který nám udává tzv. alternativní text, tedy text, který bude zobrazen po najetí myši na aplet. Kaţdý aplet na stránce můţeme pojmenovat pomocí atributu NAME. Pokud je na jedné stránce více apletů, mohou toto jméno pouţívat pro vzájemnou komunikaci. Atribut CODEBASE určuje základní URL apletu. Pokud atribut nepouţijeme, bude se za základní URL povaţovat URL stránky, na které je aplet umístěn. Apletům je moţné předávat ze stránky parametry. K tomu slouţí element PARAM, který se vkládá ihned za tag <APPLET>. U kaţdého parametru musíme zadat jeho jméno a hodnotu. V prohlíţečích, které Javu nepodporují, se místo apletu zobrazí normální text, který ale musíme zadat. To je důleţité, protoţe ne všechny prohlíţeče Javu podporují. Ty textové ani nemohou, protoţe Java–aplet můţe být zobrazen pouze v GUI (grafickém uţivatelském rozhraní).
- 31 -
3.2. PHP: Hypertext Preprocesor 3.2.1 Vznik PHP Na počátku zrodu systému stál Rasmus Lerdorf. Psal se rok 1994 a Rasmus si ve svém volném čase vytvořil v Perlu jednoduchý systém pro evidování přístupů k jeho stránkám. Jelikoţ neustálé spouštění interpretu Perlu velice zatěţovalo www–server, přepsal autor systém do jazyka C. [2] Perl je interpretovaný programovací jazyk vytvořený Larry Wallem v roce 1987. S rozvojem internetu se Perl stal velmi populárním nástrojem pro tvorbu CGI skriptů. [11] Ačkoliv byl celý systém původně určen pro osobní Rasmusovo pouţití, zalíbil se i ostatním uţivatelům serveru a začali ho pouţívat. Systém se stal oblíbeným a pouţívalo ho stále více uţivatelů. Ti přicházeli s poţadavky na vylepšení celého systému. Autor proto systém rozšířil, doplnil o dokumentaci a uvolnil jej pod názvem Personal Home Page Tools, který se později změnil na Personal Home Page Construction Kit. V téţe době autor zprovoznil elektronickou konferenci, která slouţila jako prostor pro výměnu zkušeností mezi uţivateli systému. Kromě jiţ zmíněného systému pro evidování přístupů ke stránkám vytvořil pan Lerdorf i nástroj, který umoţňoval začleňování SQL–dotazů do stránek, vytváření formulářů a zobrazování výsledků dotazů. Program, který umoţnil zpřístupnění databází na Webu, se jmenoval Form Interpretr (FI). Celosvětovou proslulost si získal systém PHP/FI 2.0. Tento systém vznikl spojením dvou předchozích programů autora. V této podobě se jednalo o jednoduchý programovací jazyk, který se zapisoval přímo do HTML–stránek. PHP/FI 2.0 se rozšířilo opravdu po celém světě a pracovalo i na mnoha českých serverech. [3] Další verzí bylo PHP 3.0. Oproti předchozí verzi byl celý systém zrychlen a rozšířen o mnoho dalších funkcí. Tato verze PHP je v ostré verzi k dispozici od poloviny roku 1998. Na rozdíl od verze 2.0, verze 3.0 běţí jiţ i pod Windows. Projekt se rozšířil a na jeho vývoji pracuje Rasmus Lerdorf s několika dalšími vývojáři. Obsah zkratky PHP nyní zcela ztrácí svého původního významu a doporučené označení celého systému je hypertextový preprocesor PHP (PHP: Hypertext Preprocesor). Do jazyka byly přidány nové moţnosti pro efektivnější vytváření internetových aplikací a vznikla dnes aktuální verze 4.1.2. Tato verze dokáţe skripty provádět aţ desetkrát rychleji neţ verze 3.0. - 32 -
3.2.2 Distribuce PHP PHP je volně šiřitelný software, nejde tedy koupit v obchodě. Zdarma lze stáhnout na adrese http://www.php.net/. Na této adrese nalezneme i spoustu dalších zajímavých informací, které se týkají PHP, jedná se totiţ o oficiální server celého projektu. Na serveru nalezneme i seznam jeho zrcadel. Pro samotné stahování si můţeme vybrat zrcadlo, ke kterému máme nejrychlejší přístup. Další moţností, jak ještě s menší námahou získat systém PHP, jsou různé distribuce operačních systémů. Zejména několik posledních distribucí Linuxu v sobě obsahovalo systém PHP. V současné době PHP podporuje operační systém UNIX, 32bitová Windows (95, 98, NT, 2000 a XP) a OS Macintosh. Samotné PHP pak můţe pracovat s libovolným www–serverem, který umoţňuje spouštění CGI–skriptů. V tomto případě pracuje PHP jako CGI–skript, který zpracovává jednotlivé stránky. Výhodou tohoto řešení je kompatibilita téměř se všemi www–servery. Konkurenční technologie firem Microsoft (ASP) a Netscape (SSJS) jsou pevně svázány s firemním www–serverem. Spouštění PHP jako CGI–skript má i své nevýhody. Pro kaţdou stránku zapsanou v PHP se znovu musí spustit interpret PHP, který obslouţí poţadavek. Opakované spouštění můţe na hodně zatěţovaných serverech zdrţovat. Proto existuje i druhá moţnost, jak můţe systém PHP pracovat. [2] PHP můţe být přímo zkompilováno jako modul do serveru Apache. Interpret jazyka PHP je pak stále zaveden v paměti společně s www–serverem a odpadají tak veškeré reţijní
náklady
spojené
s opakovaným
spouštěním
interpretu
PHP.
Nejlepším
a nejvýkonnějším způsobem je pouţití PHP na serveru Apache pod Unixem. Tým vývojářů dokončil verzi PHP, která pracuje jako modul ISAPI. ISAPI je rozhraní pouţívané ve Windows pro komunikaci mezi www–serverem s dalšími aplikacemi. ISAPI verze PHP je DLL–knihovna, která je neustále zavedena v paměti a nabízí stejné moţnosti jako modul pro Apache. ISAPI je standard, který podporuje více serverů pro Windows, a tak nebude vyuţití ISAPI verze PHP svázáno pouze s jedním konkrétním serverem.
- 33 -
3.3. Databáze a jejich podpora v PHP 3.3.1 Obecné pojetí databází Databázi si můţeme představit jako místo, kam se ukládají všechna potřebná data. Přístup k údajům uloţeným v databázi obstarává program, kterému se říká SŘBD (Systém Řízení Báze Dat). Tento termín vznikl přeloţením z původního anglického termínu DBMS (DataBase Management System). Mezi SŘBD patří takové programy jako Oracle, MySQL Server, Sybase, Informix, Progress či Interbase. Cena těchto programů se pohybuje řádově v desítkách a dokonce i stovkách tisíc korun. Naštěstí existují i SŘBD, které jsou freeware, např. mSQL, MySQL a PostgreSQL. [2] Převáţná většina dnes pouţívaných SŘBD při uspořádání údajů v databázi vychází z relačního modelu dat. Název tohoto modelu vychází z relační algebry, coţ je matematický aparát, na kterém relační model dat staví. V tomto modelu jsou údaje uspořádány do tabulek. Tabulka zpravidla shromaţďuje údaje o jednom druhu objektů. Můţeme tak například mít tabulku s osobními údaji zaměstnanců. Řádky odpovídají jednotlivým zaměstnancům. Sloupce pak obsahují informace o pracovnících (osobní číslo, jméno, rodné číslo, adresa a výše platu). Sloupcům obvykle říkáme v databázové terminologii poloţky nebo atributy. Jednotlivé řádky se pak nazývají záznamy. Aby šlo s tabulkami a v nich uloţenými údaji pracovat, musí být nějak jednoznačně identifikovány. Kaţdý sloupec je proto pojmenován. Toto pojmenování pak pouţíváme, pokud se odvoláváme na obsah určitého atributu a ne na celý záznam. Častou operací prováděnou v tabulkách je změna obsahu jednoho atributu u určitého záznamu. Pro provedení této operace však musíme mít k dispozici způsob, jak jednoznačně určit poţadovaný záznam. Pro tyto účely by měla kaţdá tabulka obsahovat tzv. primární klíč. Primární klíč je atribut, jehoţ hodnota je pro kaţdý záznam jedinečná. Jako primární klíč se většinou pouţívá identifikační číslo, tzv. ID. Chybou by však bylo za primární klíč zvolit např. jméno. Pro kaţdý atribut tabulky musíme určit, jaký typ dat můţe obsahovat. Mezi nejběţněji pouţívané typy patří celá čísla, znakové řetězce a logické hodnoty (ano / ne). Další velmi pouţívané typy jsou reálná čísla, měnové údaje, datum a čas. Mnoho SŘBD podporuje i sloţitější typy, jako je obrázek, video či audio klip. Databáze můţe samozřejmě obsahovat větší mnoţství tabulek – záleţí na tom, co vše za údaje chceme do databáze zaznamenat. Kaţdá tabulka má proto své jméno, které ji - 34 -
v rámci databáze jednoznačně identifikuje. Jméno tabulky by vţdy mělo odpovídat jejímu obsahu, usnadníme si tak pozdější orientaci ve větším mnoţství tabulek. Tabulka obvykle obsahuje ucelené informace. To však neznamená, ţe nijak nesouvisí s ostatními tabulkami. Chceme–li např. evidovat informace o odběratelích, budeme chtít u kaţdého z nich znát jeho IČO, název, sídlo a našeho zaměstnance, který má styk s odběratelem na starosti. Tabulka by obsahovala některé informace, které jsou jiţ obsaţeny v naší interní tabulce o zaměstnancích. Tyto údaje by se zbytečně opakovaly. Tento problém se řeší pomocí tzv. vztahů mezi tabulkami. Např. jeden zaměstnanec můţe mít na starost několik odběratelů, hovoříme tedy o vztahu 1 : N. V praxi se tento vztah řeší tak, ţe tabulka obsahující informace o odběratelích má atribut, který obsahuje primární klíč určující zaměstnance pověřeného stykem s firmou. [2] Mezi tabulkami mohou existovat i jiné vztahy neţ 1 : N, i kdyţ nejsou tak časté. Vztah 1 : 1 vyjadřuje případy, kdy záznam jedné tabulky odpovídá jednomu záznamu jiné tabulky. Tyto vztahy se obvykle řeší jako speciální případ vztahu 1 : N s vyuţitím cizího klíče. Cizí klíč je v prostředí relačních databází integritní omezení, které u tabulky vytvoří spojení jednoho nebo více jejích sloupců se sloupcem nebo sloupci jiné („cizí―) tabulky. Pokud se hodnoty dotčených sloupců shodují, poté příslušný řádek cizí tabulky rozvíjí řádek zdrojové tabulky přes toto spojení. Tomu se téţ říká reference nebo odkaz. Jisté komplikace přináší vztahy typu M : N. Abychom tento vztah mohli zapracovat do relačního modelu, musíme ho rozloţit na dva vztahy typu 1 : N s vyuţitím pomocné tabulky. Přístup k údajům uloţeným v databázi obstarává SŘBD. Aby mohly údaje z databáze přístupné ostatním aplikacím, musí SŘBD nabízet rozhraní, pomocí kterého s ním mohou spolupracovat ostatní programy. Způsob komunikace SŘBD je velice obdobný komunikaci s WWW–serverem. Dnes je SŘBD nejčastěji nepřetrţitě spuštěn jako démon (na Unixu) nebo jako sluţby (Windows NT) a na určitém Socketu (vstupní bod k určité sluţbě přístupné přes síť) očekává poţadavky klientů (ostatních aplikací). Na tyto poţadavky pak odpovídá. Vidíme tedy, ţe i zde funguje osvědčený model klient / server. V roli serveru je nyní SŘBD a někdy mu proto také říkáme databázový server. Pro zadávání poţadavků na databázový server aplikace se nejčastěji pouţívá jazyk SQL (Structured Query Language). Tento jazyk prošel dlouhým vývojem a v různé míře jej dnes podporují téměř všechny běţně pouţívané databázové servery. Někdy se proto databázovým serverům říká zjednodušeně SQL–servery. Jazyk SQL nabízí vše potřebné - 35 -
pro vytváření, modifikování a rušení tabulek a pro práci s údaji v tabulce – vyhledávání, přidávání, modifikování a mazání údajů. V roli klienta pro SQL–server můţe vystupovat i skript zapsaný v PHP. To znamená, ţe naše skripty mohou obsahovat příkazy, zapsané v jazyce SQL a zpracovávat jejich výsledky po provedení na SQL serveru. Nic tedy nebrání tomu, aby byl přes Web zpřístupněn obsah nějaké databáze. V praxi je vše samozřejmě poněkud sloţitější. Kaţdý SQL–server má svůj vlastní protokol, kterým s ním můţe klient komunikovat. Pokud má klient umět komunikovat s více různými servery, musí podporovat více protokolů. Kvůli zjednodušení vzniklo na platformě Windows rozhraní ODBC. To slouţí jako prostředník mezi klientskou aplikací a databázovým serverem. Rozhraní ODBC se volá jednotně a ODBC–ovladač pak poţadavek předá databázovému serveru pomocí správného protokolu. Velkou výhodou ODBC tedy je, ţe stejným způsobem můţeme přistupovat k libovolné databázi. Pokud se tedy z nějakého důvodu změní SQL–server, na kterém běţí naše aplikace, nemusíme měnit v PHP skriptech ţádný kód. Počáteční nevýhodou, která mluvila proti pouţití ODBC, byl niţší výkon proti nativním ovladačům. Staré ovladače ODBC slouţily pouze jako mezistupeň mezi aplikací a nativním protokolem databáze. Novější ODBC ovladače jsou však optimalizovány a k databázovému serveru přistupují přímo – jejich výkon je srovnatelný s pouţitím nativních ovladačů. Některé novější SŘBD obsahují jako svůj jediný nativní protokol právě ODBC. [2] Poslední otázka, která se nabízí, je vyuţitelnosti ODBC na jiných platformách, neţ jsou Windows. ODBC bylo původně vyvinuto pro Windows, ale dnes jeho implementace existuje i pro všechny významnější verze operačního systému Unix. PHP samozřejmě obsahuje podporu pro práci s databázemi pomocí rozhraní ODBC. Kromě toho máme k dispozici funkce, které umoţňují pomocí nativního protokolu pracovat s následujícími SŘBD: Adabas D, MySQL, Sybase, Informix, Oracle, Velocis, MySQL Server, PostgreSQL, mSQL, Solid. Kromě podpory moderních SQL–serverů obsahuje PHP i funkce pro práci se staršími databázovými technologiemi. V minulosti se často pro práci s daty pouţíval přímý přístup k souboru, který obsahoval data. Asi nejznámějším zástupcem této skupiny jsou systémy DBase (v DOSu a ve Windows) a dbm (v Unixu). PHP obsahuje funkce pro práci s DBase i dbm. Navíc obsahuje podporu pro u nás málo známy systém FilePro. Podpora pro tyto
- 36 -
starší systémy se hodí zejména pokud potřebujeme aplikaci v PHP napojit do stávajícího informačního systému, který vyuţívá DBase nebo dbm. Častým dotazem mnoha uţivatelů je, zda mohou přistupovat k datům z programů MS Access a MS Excel. Tento přístup je moţný – nejjednodušší je asi přes rozhraní ODBC, protoţe ovladače pro Access a Excel bývají standardní součástí distribuce obou programů. Existuje několik způsobů komunikace s SQL–serverem. Aplikace napsaná v PHP bude se serverem komunikovat buď přes rozhraní ODBC nebo přímo pomocí nativního kódu. Je zajímavé si v tomto případě uvědomit, jak zdlouhavá je cesta mezi uţivatelem aplikace a samotným SQL–serverem. Uţivatel ve svém prohlíţeči provede akci, jejímţ výsledkem je poţadavek na určité URL. Prohlíţeč se tedy spojí s daným WWW–serverem a předá mu poţadavek. WWW–server spustí interpret PHP na poţadovaný skript a předá mu parametry zaslané uţivatelem. Skript se pak přímo nebo přes rozhraní ODBC připojí k SQL–serveru (ten můţe běţet dokonce na jiném počítači neţ WWW–server). Odpověď klientovi směřuje stejnou cestou zpět. Dále existuje tzv. front–end aplikace, která slouţí ke správě SQL–serveru. Kaţdý server potřebuje údrţbu – musíme v něm vytvářet databáze, spravovat uţivatelské účty, provádět pravidelné zálohy dat, monitorovat zatíţení serveru apod. K těmto účelům se ke kaţdému serveru dodává speciální aplikace. Většina freewarových serverů obsahuje pouze jednoduchý řádkový monitor, pomocí kterého můţeme zadávat příkazy ovlivňující chod serveru. Komerčně šířené servery většinou obsahují speciálně vytvořený grafický nástroj pro správu serveru. Většina front–end aplikací nám rovněţ umoţňuje zadávat serveru přímo příkazy v jazyce SQL. Můţeme je s výhodou pouţít na vyzkoušení toho, zda jsou naše SQL příkazy správné. Výběr databáze pro kaţdou větší aplikaci je jistě klíčový. Musíme zváţit mnoho faktorů, jako je cena, výkon a kompatibility s ostatními programy. V našich podmínkách se vyplatí zvaţovat i další kritéria – například, zda server podporuje řazení záznamů podle české abecedy. [2] Pokud je limitujícím faktorem cena, je vhodným kandidátem PostgreSQL. Jedná se o databázový server původně vyvíjený na Kalifornské univerzitě v Berkeley, který obsahuje některé pokročilé technologie, jako objekty, dědičnost, moţnost definice vlastních datových typů a funkcí. Jeho nevýhodou je poměrně malý výkon, který můţe vadit zejména u hodně exponovaných aplikací nebo aplikací, které pracují nad rozsáhlými datovými tabulkami. PostgreSQL je však zcela zdarma pro všechny verze Unixu. - 37 -
Je–li primárním zájmem rychlost, můţe být zajímavé MySQL. MySQL je velice rychlý databázový server, který běţí na Unixu i na Windows. Jeho rychlost vychází zejména z toho, ţe neobsahuje podporu pro transakční zpracování dat – bez něj se však často obejdeme. Novější verze MySQL obsahují velice dobrou podporu češtiny. Pro nekomerční pouţití je MySQL zcela zdarma, komerční uţivatelé musí za pouţití zaplatit několik tisíc, coţ je však směšná cena v porovnání s ostatními komerčními servery. V Čechách je velmi rozšířen produkt firmy Microsoft – MS SQL Server. Pokud budeme chtít v něm uloţená data zpřístupnit uţivatelům na Webu, musíme si zakoupit licenci, která stojí přibliţně 100 000 Kč. Komerční servery můţeme získat zcela běţnou cestou jako ostatní komerční software. Freewarové servery a omezené zkušební verze serverů jsou k dispozici ke staţení z Internetu nebo je můţeme získat na různých discích CD–ROM. Tak například u nás tak oblíbená distribuce Linux RedHat obsahuje server PostgreSQL. K dispozici jsou i disky s pohodlnou instalací Apache, PHP a demoverze databázového serveru Solid.
- 38 -
3.3.2 MySQL MySQL je ke staţení na adrese http://www.tcx.cz/ nebo na českém zrcadle http://mirror.opf.slu.cz/. Po úspěšné instalaci by měl být spuštěn démon mysqld (na Windows NT sluţba), která zajišťuje činnost serveru. Standardně máme k dispozici databázi test, která se hodí pro testovací účely – právo přístupu k ní má kaţdý uţivatel. Pro první seznámení s MySQL můţeme pouţít jednoduchého klienta mysql, který je součástí distribuce. Tento klient umoţňuje zadávání příkazů SQL a několika dalších příkazů souvisejících se správou databází. Pro práci s klientem jsou důleţité dvě věci. První z nich je, jak klienta ukončit. Aplikaci mysql ukončíme příkazem quit. Další věcí, která často dělá problémy, je nutnost ukončit kaţdý SQL příkaz středníkem (;). Dokud středník nezadáme, klient neodešle příkaz ke zpracování a my neuvidíme ţádné výsledky. Nová databáze se vytváří příkazem mysqladmin create jmenodatabaze;. Novou databázi bychom měli vytvářet pro kaţdou novou aplikaci, aby byla všechna data přehledně uspořádána. U nově vytvořené databáze musíme správně nastavit přístupová práva, jinak se nám stane, ţe s databází nebudeme moci pracovat. Uţitečným příkazem je mysqlshow, který nám zobrazí všechny dostupné databáze. Pokud jako parametr pouţijeme jméno nějaké databáze, vypíší se všechny tabulky, které obsahuje. Nesmíme zapomenout nastavit ODBC (Open Database Connectivity) ovladače ve Windows tak, abychom mohli pro přístup k MySQL pouţívat ODBC místo nativních funkcí. Pokud chceme k MySQL přistupovat pomocí nativních funkcí, nemusíme se instalací ODBC vůbec zabývat. [2] Ovladače ODBC pro Windows získáme na stejné adrese jako samotné MySQL. Instalaci spustíme příkazem setup. Po instalaci jiţ zbývá jen správně nakonfigurovat datové zdroje. Kaţdá datová zdroj ODBC odpovídá jedné databázi a pomocí něj mohou k databázi přistupovat všechny aplikace, které podporují ODBC. Pro vytvoření zdroje spustíme v Ovládacích panelech ikonu ODBC a vybereme záloţku System DSN. Nyní pomocí tlačítka Add přidáme nový databázový zdroj. V následujícím dialogovém okně jako server samozřejmě vybereme MySQL. Ještě nám zbývá vyplnit okno pro nastavení parametru zdroje. Do pole Windows DSN Name vyplníme jméno datového zdroje. Doporučuje se pouţít shodné jméno s databází, minimálně pro přehlednost. Mezi další důleţité - 39 -
parametry patří jméno databáze a adresa serveru. Ta bude nejčastěji localhost, jelikoţ SQL–Server běţí na stejném počítači jako WWW–server. Parametry nastavíme na hodnotu 256, která zamezí případným problémům s některými staršími verzemi ODBC. Do polí User a Password můţeme vyplnit jméno a heslo, pod kterými se hlásíme k databázi. Tato pole ve většině případů necháme prázdná, a uţivatele a heslo nastavíme aţ přímo při vytváření spojení v PHP skriptu. Pokud bychom jméno a heslo uvedli v konfiguraci ODBC zdroje, získal by přístup k databázi kaţdý, kdo má přístup k počítači. Dalším
rozšířeným
serverem
je
PostgreSQL.
Jeho
domovská
stránka
je
http://www.postgresql.org/ . Po úspěšné instalaci na počítači běţí démon postmaster. Ten pracuje jako SQL–server a umí odpovídat na poţadavky klientů. Společně s PostgreSQL je dodáván i jednoduchý řádkový klient psql. Nejčastěji pouţijeme psql pouze s parametrem, který určuje jméno databáze. V tomto případě se spustí řádkový klient, který nám umoţní zadávat SQL–příkazů pro danou databázi, podobně jako program mysql pro server MySQL. Důleţité je opět vědět, jak se psql ukončuje. Slouţí k tomu poněkud atypický příkaz \q.
SQL–příkazy
musíme
ukončovat
středníkem,
jinak
se
neodešlou
na server ke zpracování. [2] Uţitečným příkazem je psql –l, který nám zobrazí všechny dostupné databáze. Pokud pouţijeme příkaz psql jmenodatabaze –c \\d, vypíší se všechny tabulky obsaţené v databázi. Abychom mohli s PostgreSQL pracovat, musí být naše uţivatelské jméno zaregistrováno pro přístup k databázi. Toho dosáhneme pomocí příkazu createuser. Příkaz createuser je často dostupný pouze správci systému PostgreSQL a není dostupný běţnému uţivateli. V tomto případě o přidělení přístupu musíme poţádat správce. Databázi si vytvoříme pomocí příkazu createdb jmenodatabaze.
- 40 -
3.3.3 MS SQL Server MS SQL Server se instaluje obdobným způsobem jako všechny programy firmy Microsoft pomocí instalačního programu setup. Pro správu databáze je asi nejvýkonnější nástroj SQL Enterprise Manager. Pomocí tohoto nástroje můţeme spravovat celý SQL server. Abychom mohli pracovat s databází, musíme ji vytvořit. Pro kaţdou databázi nejdříve zaloţíme databázové zařízení (database device) pomocí příkazu New Device vybraném z pop–up menu na sloţce Database Devices. Zcela obdobně vytvoříme novou databázi pomocí příkazu New Database, který zvolíme z pop–up menu na sloţce Databases. Pro kaţdou databázi vytvoříme uţivatele, kteří k ní mají přístup. Kaţdý takový uţivatel však musí být spojen ještě s účtem pro přihlašování k SQL–serveru (sloţka Logins). Doporučuje se proto vytvořit pro přístup k databázi uţivatele, jehoţ jméno je totoţné s nějakým jménem pro přihlášení. Pro testovací účely zpravidla pouţijeme uţivatele quest, který má jiţ vytvořen i účel pro přihlášení (účet není chráněn heslem). Pro testovací vyuţití příkazů v MS SQL Serveru slouţí utilita Tools – SQL Query Tool, ve které nedochází k modifikaci dat ostré databáze. SQL–Server se z PHP obsluhuje pomocí rozhraní ODBC. Proto musíme vytvořit pro kaţdou databázi nový datový zdroj. Následně spustíme v Ovládacích panelech ikonu ODBC a vybereme záloţku System DNS. Nyní pomocí tlačítka Add přidáme nový databázový zdroj. V následujícím dialogovém okně jako server vybereme SQL Server. Postupně se objeví několik oken pro nastavení parametrů zdroje dat. Většinou jsou standardní hodnoty vyhovující, i přesto však musíme provést několik malých změn. V druhém dialogovém okně musíme změnit způsob autentizace z Windows NT na SQL Server a vypnout zjišťování dodatečných informací. Na další kartě bychom měli vybrat databázi, ke které bude datový zdroj připojen. Všechny ostatní volby můţeme nechat defaultně nastavené. [2] Na konci je nám nabídnuta moţnost otestování datového zdroje. Pokud ji ale zvolíme, proběhne neúspěšně. Je to způsobeno tím, ţe jsme pouţili autentifikaci SQL Serveru místo Windows NT. Testovací procedura se nás však neptá na jméno a heslo, které se má pouţít pro připojení k databázi. Tyto údaje specifikujeme aţ v našich PHP skriptech.
- 41 -
3.4. Apache (použití v Microsoft Windows) 3.4.1 Stažení Informace o poslední verzi jsou k dispozici na serveru Apache na adrese http://apache.org/. Je zde uvedena aktuální verze, všechny starší alfa nebo beta–testovací verze spolu s podrobnostmi o zrcadlech a anonymních ftp místech. Server Apache je moţné stáhnout v několika podobách, včetně archivu WinZip (.zip). Přestoţe tento archív obsahuje stejné soubory jako ostatní archívy (jako .tar .gz a .tar.Z), doporučuje se jej pouţít ve Windows, neboť všechny v něm obsaţené soubory obsahují konce řádků Windows. Ostatní soubory mohou obsahovat soubory s Uniovými konci řádků, které nebudou fungovat ve Windows.
3.4.2 Použití Prvním krokem je nastavení konfiguračních souborů Apache. Základní konfigurační soubory pro Windows jsou umístěny v podadresáři conf distribuční sady Apache a jsou pojmenovány httpd.conf–dist–win, access.conf–dist–win a srm–conf–dist–win. Tyto soubory je nutné přesunout do adresáře \Apache\conf a přejmenovat je na httpd.conf, access.conf a srm.conf. [3] Vzhledem k tomu, ţe Apache pro Windows je multithreadový, nepouţívá pro kaţdý poţadavek zvláštní proces, jak je tomu v případě Apache pro Unix. Direktivy pro správu procesů jsou proto odlišné: StartServers – Říká serveru, kolik procesů má pouţít. Na rozdíl od Unixu jich nikdy nebude víc neţ toto číslo a najednou bude pouţit jen jeden (ostatní budou v rezervě pro případ, ţe hlavní proces havaruje nebo nějak jinak skončí). Doporučené výchozí nastavení je 3. MaxRequestsPerChild – Stejně jako v Unixu tato direktiva řídí, kolik poţadavků proces obslouţí, neţ skončí. Na rozdíl od Unixu však proces obsluhuje všechny poţadavky najednou, ne jen jeden, takţe pokud tuto hodnotu nastavíme, musíme pouţít vysoké číslo. Doporučené výchozí nastavení MaxRequestsPerChild = 0 způsobí, ţe proces nikdy neskončí. - 42 -
ThreadsPerChild – Tato direktiva je nová a říká serveru, kolik threadů má pouţít. Jde o maximální počet spojení, které server dokáţe obsluhovat najednou. Pokud mají naše stránky velký počet přístupů, musíme tuto hodnotu nastavit dostatečně vysoko. Doporučené výchozí nastavení je 50. Direktivy, které jako argumenty akceptují jména souborů, musí pouţívat jména souborů pro Windows, ne pro Unix. Protoţe však Apache interně pouţívá jména ve stylu Unixu, musíme vyuţívat dopředná, ne zpětná lomítka. Lze pouţívat písmena označující disky; pokud označení disku chybí, pouţije se disk, na kterém je spustitelný program Apache. Apache pro Windows má schopnost zavádět moduly za běhu, bez rekompilace serveru. Je–li Apache normálně zkompilován, nainstaluje do adresáře \Apache\modules řadu volitelných modulů. Pro jejich aktivaci se musí vyuţít nová direktiva LoadModule. Například pro aktivaci stavového modulu pouţijeme následující (spolu s direktivami aktivujícími stavové hlášení v access.conf): LoadModule status_module modules/ApacheModuleStatus.dll K dispozici jsou také informace o tvorbě modulů DLL. Apache také dokáţe zavést rozšíření ISAPI (Internet Server Aplications). Jakmile je Apache správně nakonfigurován, je téměř připraven ke spuštění. Doporučuje se zkopírování podadresářů icons a htdocs z distribuční sady Apache do adresáře \Apache. Druhý z těchto adresářů je nezbytně důleţitý, neboť obsahuje kořenový adresář dokumentů, které server poskytuje. [3] Apache lze pustit dvěma způsoby – přímo z příkazového řádku nebo jako sluţbu Windows NT / 2000 / XP. Pro spuštění z příkazového řádku pouţijeme následující výraz: C:\Apache Apache –s
- 43 -
Apache se spustí a poběţí, dokud nebude ukončen. Pro spuštění Apache jako sluţby Windows NT / 2000 / XP pouţijeme: C:\Apache Apache –i Pokud je Apache nainstalován do jiného serverového adresáře neţ \Apache, musíme pouţít volbu příkazového řádku –f pro specifikaci souboru httpd.conf nebo volbu –d pro specifikaci kořenového adresáře serveru.
- 44 -
3.5. Cookies Pomocí systému PHP lze vytvářet opravdu zajímavé aplikace. Ovšem i aplikace napsané v PHP mají jistá nepříjemná omezení vyplývající z principu protokolu HTTP. Protokol HTTP je nestavový. Znamená to, ţe pro přenos kaţdé stránky se otevírá nové zvláštní HTTP spojení, které se ihned po přenosu uzavře. Server a potaţmo tedy i skript nemá šanci zjistit, zda jej nějaký uţivatel spouští poprvé nebo podesáté. [2] Částečnou moţností řešení tohoto problému je ukládání pomocí stavových informací do skrytých polí formuláře anebo tyto informace přidávat do cesty v URL za jméno skriptu. Tyto techniky jsou vyuţívány poměrně často a mnoho problémů uspokojivě vyřeší. Ovšem ani tyto dva způsoby neřeší problém trvalého uloţení nějakých informací. Kdyţ totiţ prohlíţeč spustíme příští den znovu, server uţ o tom, ţe jsme po něm včera „brouzdali―, vůbec neví. Tento problém řeší cookies, coţ je rozšíření protokolu HTTP pocházející z dílny firmy Netscape. Dnes je toto rozšíření podporováno snad všemi prohlíţeči. Pokud si chceme prohlédnou stránku uloţenou na některém serveru, můţe server v odpovědi na náš poţadavek zaslat i informaci, kterou má klient (prohlíţeč) uloţit pro další pouţití. Pokud je pak v budoucnosti navazováno spojení se stejným serverem, jsou mu tyto informace zaslány zpět. Informace jsou zapisovány do souboru, který je uloţen ve stejném adresáři jako prohlíţeč nebo v adresáři uţivatele. Ve jméně souboru či adresáře, kam se cookies ukládají, poměrně často narazíme na slovo cookies. Většinou jsou informace o cookies uloţeny v textovém souboru, a proto si jej můţeme zobrazit téměř libovolným textovým editorem. Cookies nejsou vázány na naše jméno ani e–mailovou adresu. Jsou společné pro jednu instalaci prohlíţeče (i ta však můţe být víceuţivatelská). Server se naše jméno ani další soukromé údaje z cookies nemůţe dozvědět. Jedinou moţností by bylo vyplnění těchto údajů do nějakého formuláře na serveru a zaslání těchto údajů jako cookies zpět prohlíţeči pomocí skriptu, který obsluhuje formulář. Cookies tedy neumoţňují přenos uţivatelského jména a dalších osobních údajů bez vědomí uţivatele, jak se mnoho neinformovaných uţivatelů Internetu domnívá. Server si například můţe uchovávat informace o tom, jaké stránky jsme navštívili a kolik času jsme na nich strávili. Tyto informace mohou být vyuţívány při statistickém vyhodnocování návštěvnosti jednotlivých stránek serveru. Mohly by být vyuţity i nějakou - 45 -
marketingovou společností, pokud by stránky obsahovali například nabídky zboţí a sluţeb či inzerci. V tomto případě bychom uţ mohli diskutovat o tom, zda je vyuţívání těchto informací legitimní. Vzhledem k tomu, ţe bez našeho vědomí nelze získat naši adresu, nemůţe se nám stát, ţe by z ničeho nic naši poštovní schránku zavalily reklamní nabídky. Mnohem uţitečnější se jeví vyuţití cookies při ukládání konfiguračních informací. Server si tak můţe zjistit naše posledně pouţité nastavení těch WWW–stránek, které byly generovány dynamicky. Dnes se této vlastnosti říká personalizace. Jako reakce na tlak uţivatelů je ve většině prohlíţečů moţno podporu cookies vypnout, a to jak napořád, tak i jen pro jednu relaci. V mnoha uţivatelích přetrvává zcela neoprávněný pocit, ţe cookies ohroţují jejich soukromí, a proto si cookies vypínají. Aplikace se pak s prohlíţeči, které cookies nepodporují, musí nějak vypořádat. Poněkud problematičtější je zajištění informací uloţených pomocí cookies před servery, které k nim nemají mít přístup (nevytvořily je). I kdyţ prohlíţeč vrátí cookies pouze tomu serveru, který je uloţil, teoreticky existují metody, jejichţ pouţitím se server můţe prokazovat jako nějaký jiný server. Cookies mohou být vázány i na konkrétní podadresáře serveru, nemusí tedy být společné pro jeden server (doménu). Cookies se přenáší pomocí protokolu HTTP. Specifikace vyţaduje, aby byl klient schopen uloţit alespoň 300 cookies po 4 KB a alespoň 20 cookies pro jeden server, případně doménu. [2] Při pouţívání cookies je potřeba provádět dvě operace: ukládat si cookies na klientovi a číst cookies zaslané klientem spolu s poţadavkem na nějaké URL. Cookies ukládáme následujícím způsobem: Cookies se klientovi posílají v HTTP hlavičce. Obecný formát je: Set –Cookie: <<jméno>>=<
>; expires=<>; path=<>; domain=<<doménová adresa>>; secure Jedinou povinnou částí je přitom <<jméno>>=<>. Ta slouţí k nastavení cookie se jménem <<jméno>> na hodnotu <>. <<jméno>>=<> Slouţí k nastavení cookie na určitou hodnotu. Pokud později přijde od serveru cookie se stejným jménem, ale jinou hodnotou, má cookie tuto novou hodnotu. Celý řetězec nesmí - 46 -
obsahovat středník a mezery. V případě, ţe je potřebujeme, musíme je překódovat pomocí procentové notace podobně jako v URL. Nastavení cookie Jmeno na hodnotu Jan Novák tedy provedeme následovně: Set–Cookie: Jmeno=Jan%20Novák, jelikoţ hexadecimálně vyjádřený kód znaku mezera je 20. expires=<> Atribut expires určuje, dokdy má cookie platnost. Po určeném datu se cookie neukládá ani se neposílá serveru. domain=<<doménová adresa>> Pokaţdé, kdyţ se prohlíţeč chystá odeslat cookies, porovná doménovou adresu z URL, které má být vyvoláno, s atributem domain. Při porovnání stačí, aby domain bylo součástí doménové adresy. Pokud by mohla být cookie zaslána díky shodě domén, je provedeno ještě porovnání cesty (atribut path). Pokud bude tedy domain=acme.com, vyhoví adresy anvil.acme.com i shipping.acme.com a můţe se přistoupit k porovnání cesty. Pokud atribut domain nenastavíme, pouţije se doménová adresa serveru, který cookie prohlíţeči poslal. Tento atribut vyuţijeme, pokud potřebujeme, aby se cookies předávala více serverům z jedné domény. path=<> Pomocí tohoto atributu určujeme tu část URL v doméně, pro kterou je cookie platná. Jestliţe cookie vyhověla porovnávání domén, provede se porovnávání cest. Pokud atribut path nespecifikujeme, pouţije se cesta z URL dokumentu, s nímţ byla cookie zaslána. secure Pokud byla cookie zaslána prohlíţeči s tímto atributem, bude na server poslána zpět pouze v případě, ţe spojení je bezpečné. To prakticky znamená, ţe spojení probíhá pomocí SSL (Secure Socket Layer), coţ je specifikace zabezpečené komunikace mezi klientem a serverem.
- 47 -
Čtení cookies probíhá takto: Klient s kaţdým poţadavkem na dokument o určitém URL posílá i všechny vyhovující cookies. Ty jsou poslány jako součást HTTP hlavičky v následujícím tvaru: Cookie: <<jméno1>>=<>; <<jméno2>>=<> Pro nás je však důleţitější, ţe takto zaslanou hlavičku předá server našemu skriptu v proměnné $HTTP_COOKIE. Odtud si cookies můţeme přečíst a naloţit s nimi dle vlastního uváţení. PHP nám nabízí ale i mnohem pohodlnější způsob pro práci s cookies. Ze všech cookies, které k prohlíţeči dorazí, nám PHP vytvoří proměnné. [2]
- 48 -
4. Optimalizace internetového obchodu podle aktuálních trendů 4.1. Dotazy a nápady uživatelů / zákazníků Pro řízení vztahů se zákazníky a celkově ke správě obchodní komunikace vyuţívá většina firem CRM. Customer relationship management je databázovou technologií podporovaný proces shromaţďování, zpracování a vyuţití informací o zákaznících firmy. Umoţňuje tak poznat, pochopit a předvídat potřeby, přání a nákupní zvyklosti zákazníků a podporuje oboustrannou komunikaci mezi firmou a jejími zákazníky. Jako CRM v přeneseném smyslu se také označuje softwarové, hardwarové a personální vybavení firmy, které je výkonem těchto funkcí pověřeno. Aby byl internetový obchod skutečně konkurenceschopný, respektive měl oproti ostatním konkurenčním projektům marketingovou výhodu, je nezbytně nutné neustále pracovat na optimalizaci a vylepšování stávajících funkcí, vzniku funkcí nových a zaměřit se na přizpůsobení internetového obchodu novým trendům v dané oblasti. Tento vývoj webové aplikace zaštiťuje jen velmi zřídka celý sama firma, která internetový obchod vlastní. V naprosté většině případů se o vývoj stará externí společnost, která programuje ty funkcionality, které si zadavatel přeje. Některé firmy zabývající se vývojem jsou schopny nejen zpracovávat poţadavky zákazníka, ale dokonce sami přichází s novými vizemi a nápady. Firma provozující internetový obchod by rozhodně měla dát prostor svým zákazníkům vyjádřit se k webu, poslat svoje připomínky, kritiku nebo nápady na zlepšení. Zpravidla je toto řešeno pomocí formuláře, který uţivatel vyplní a odešle. Další moţností je zasílání emailu na správce webu nebo programátory. Mnozí, především loajální zákazníci, posílají řadu opravdu zajímavých a důkladně promyšlených nápadů na zlepšení. Velmi důleţitá jsou upozornění na chyby. Tyto získané informace provozovatel webové aplikace vyhodnotí a učiní strategické rozhodnutí. Např. zavedení nové funkce s přesným a specifikovaným účelem. Následně komunikuje s programátory a domlouvá se na realizaci vylepšení. Velmi často se provozovatel internetového obchodu setká s tím, ţe je mu programátory sděleno, ţe novou - 49 -
funkci tak, jak si ji představuje naprogramovat nelze, není to reálné. Potom se musí na základě předloţených řešení snaţit najít kompromisní řešení. Z obchodního hlediska je velmi důleţité zákazníkům, kteří zaslali nápad nebo upozornění, vţdy poděkovat za jejich čas a energii a umoţňují-li to okolnosti i sdělit stanovisko.
- 50 -
4.2. Strategické rozhodování Majitel internetového obchodu určuje, jakým směrem se bude jeho projekt posouvat, jaké funkce chce zavést a jak se bude jeho aplikace „chovat―. Řeší tedy zásadní strategické otázky. O těchto komunikuje s programátory, kteří zpracovávají přijaté úlohy dle zadání objednatele. Kaţdá strategická úloha musí být nejen naprogramovatelná, ale zároveň je nezbytně nutné, aby objednatel s programátory stanovili rozumné termíny realizace. Mnohdy se jedná o velmi časově náročné radikální zásahy do jádra systému. Jejich zpracování by natolik vytíţilo programátory, ţe by se pak nemohli věnovat ostatním úlohám ani údrţbě aplikace internetového obchodu, databázi atd. Proto se v těchto případech doporučuje zásadní změny plánovat s relativně velkým předstihem a termínově logicky navázat na další aktivity firmy, např. marketingové. Příkladem můţe být nasazení nového loga společnosti, coţ je jednoznačně marketingová záleţitost. Provozovatel aplikace ale bude chtít logo spustit zároveň s novou funkcí, například zavedením zpětných bonusů za nákupy, protoţe v nové grafické podobě bude tato konkurenční výhoda jiţ zmíněna. Pokud by nastala situace, kdy logo s odkazem na zpětné bonusy jiţ inzeruje, ale programátoři nemají systém ještě dokončen a odladěn, dojde k zásadní chybě, kterou nemůţe podnikatel dovolit. Musel by stáhnout kampaň, coţ by přineslo nejen finanční ztrátu za výdaje navíc, ale i v podobě peněz, které mohl internetový obchod vydělat, ale nevydělal. Tomuto jevu říkáme Opportunity Cost. Cenu ušlé příleţitosti platíme vţdy za to, ţe děláme s danými prostředky to, co děláme, a neděláme něco jiného. V ceně ušlé příleţitosti můţeme poměřovat výsledky realizované hospodářské činnosti moţnými výsledky alternativní činnosti. Jde-li např. o zisk, srovnáváme jej s ušlým ziskem z obětované příleţitosti. V praxi trţního hospodářství můţe jako cena ušlé příleţitosti vystupovat úrok z vkladu. Lze totiţ předpokládat, ţe finanční prostředky vloţené do firmy přinesou zisk, který můţeme srovnat s úrokem, který by nám přinesly tytéţ finanční prostředky uloţené jako vklad v bance. Opačným pohledem načasování např. marketingových aktivit s příliš velkou rezervou, tedy relativně dlouho po zprovoznění nové funkcionality. Zde se firma můţe dostat do nevýhody oproti konkurenci, která mohla s novinkou na trh jiţ přijít. Je tedy nutné strategické úlohy plánovat co nejvíce harmonicky, tzn. snaţit se uvést vše co nejdříve, ale zároveň myslet na to, ţe musí být z programové stránky vše ošetřeno a otestováno.
- 51 -
Jsou známé případy, kdy firma nasadila novinku, která ale nefungovala. Například nový systém objednávání, který měl přinést intuitivnější a rychlejší nákup přes internet. Aplikace ale nebyla řádně odladěna a zákazníkům vyuţívající alternativní internetové prohlíţeče formulář vracel chybové hlášky, přestoţe byla objednávka zrealizována. Toto vedlo k velkému zmatku a znepokojení zákazníků. Určitá část zákazníků objednala zboţí u konkurence, čímţ vznikla internetovému obchodu první ztráta. Druhou ztrátou bylo to, ţe zásilka byla pro zákazníka např. vyexpedována. Ten ji ale odmítnul, protoţe potřebné zboţí jiţ měl.
- 52 -
4.3. Komunikace s HelpDeskem Tím, ţe firma zakoupí nebo vyvine aplikaci internetového obchodování proces správy a údrţby internetového obchodu nekončí. Vţdy jsou nutné a potřebné opravy nebo různá vylepšení a proto je nutné aplikaci nadále vyvíjet a opravovat. O tuto činnost se ve velmi malém procentu případů starají firmy provozující daný e–shop. V naprosté většině internetové obchody spravují odborné firmy, zabývající se vývojem softwaru. S programátory vývojářských firem se komunikuje většinou pomocí tzv. helpdesku. To je rozhraní, do kterého zadává objednatel práce své poţadavky a programátoři zadají své reakce na ně, včetně informací o stavu jednotlivých úloh. Do helpdesku mají tedy přístup programátoři i autorizovaný zaměstnanec společnosti provozující internetový obchod. O kaţdém zadání a způsobu řešení daného poţadavku je v helpdesku veden záznam. V některých případech chodí aktuální stav daného úkolu při jakékoliv změně stavu informativní email. Většinou je také moţné do seznamu úloh přistoupit přes webové rozhranní, coţ je velká výhoda. Majitel e–shopu má kdykoliv k dispozici stav poţadovaných úprav a má tedy pod kontrolou práci na jeho projektech. Důvodů, proč vlastně komunikovat s programátory je několik. V první řadě je nutné správné zadání. Musí být jasně formulován cíl, tedy co způsobí daná oprava nebo konkrétní rozšíření. Tento cíl musí výt potvrzen i druhou stranou, resp. to, ţe účel je všem jasný a nezkreslený. Dalším důvodem kontroly je hlídání nastaveného směru, tzn. aby úloha nedělala něco jiného, neţ zadavatel poţaduje, aby se programátor neodchýlil od zadání. Nutným krokem je vţdy kontrola splněných úloh v řádných termínech. Jakmile by firma, která řeší správu, přestala plnit termíny a proto nedokončovala jednotlivé fáze programových změn včas, je nutné tento stav bez odkladu řešit. Ideálním řešením je mít smluvně ošetřené sankce za nesplnění úkolu. Pokud se programátoři zpozdí s nasazením nové funkce nebo opravené úlohy, získá společnost provozující obchod finance dle smlouvy. Ty ale mnohdy neřeší to, ţe objednatel v některých případech nutně potřebuje mít úlohu hotovou, má např. na novou funkci objednanou marketingovou kampaň a vyšla uţ celorepubliková inzerce, takţe ji nelze pozastavit. Proto je nutné strategické úlohy termínovat s rezervou a velmi přísně hlídat plnění jednotlivých kroků. V případě, ţe se na dodavatelskou firmu spolehnout, protoţe termíny neplní a na urgence nereaguje, nemá takováto spolupráce význam a zpravidla bývá ukončována. Majitel internetového obchodu následně hledá jinou, spolehlivou vývojářskou firmu. - 53 -
4.4. Shrnutí Internetové obchody vznikly v první polovině 90. let 20. století v USA. Po roce 2008 zaznamenalo internetové obchodování velmi dynamický rozvoj. V dnešní době je nakupování přes internet díky svým výhodám velmi oblíbené a tato oblíbenost stále roste. Mezi hlavní výhody patří dostupnost obchodu 24 hodin denně, 7 dní v týdnu, 365 dní v roce a zpravidla niţší ceny neţ kamenné obchody. Podnikatel, který uvaţuje o realizaci internetového obchodu, musí mít konkrétně a přesně definovaný produkt a zjištěnou potřeba zákazníka. Obecně platí, ţe ve vyspělých ekonomikách není tak těţké vyrobit, ale můţe být problém naše produkty prodat. Proto je velmi důleţitým krokem průzkum trhu. Při tom zjišťujeme okamţitý stav trhu, operativní změny a směry jeho vývoje. Vlastní
realizaci
internetového
obchodu
přenechává
podnikatel
většinou
specializovaným firmám zabývajícím se touto činností. Webové stránky jsou tvořeny pomocí jazyků pro tvoru stránek. Základem je HTML (HyperText Markup Language). Vývojem bylo rozšířeno na DHTML (Dynamic HTML), XML (eXtensible Markup Language) a XHTML. Dalším zdokonalováním započalo uţití stylů a doplňků jako jsou CSS (Cascading Style Sheets), SGML, JavaScript nebo Java Aplety. V současné době patří mezi nejrozšířenější jazyk PHP (Hypertext Preprocesor). Aby mohla webová stránka plnit funkci plnohodnotného internetového obchodu, musí komunikovat s databází, do které ukládá data. Ta tvoří např. údaje o zákazníkovi, typu zboţí, způsobu dodání apod. Pro řízení vztahů se zákazníky a celkově ke správě obchodní komunikace vyuţívá většina firem CRM. Umoţňuje poznat, pochopit a předvídat potřeby, přání a nákupní zvyklosti zákazníků a podporuje oboustrannou komunikaci mezi firmou a jejími zákazníky. Pro správnou funkčnost a konkurenceschopnost internetového obchodu je nezbytně nutné neustále pracovat na optimalizaci a vylepšování stávajících funkcí, vzniku funkcí nových a zaměřit se na přizpůsobení internetového obchodu novým trendům v dané oblasti. Majitel internetového obchodu určuje, jakým směrem se bude jeho projekt posouvat, jaké funkce chce zavést a jak se bude jeho aplikace „chovat―. Řeší tedy zásadní strategické otázky, o kterých komunikuje s programátory pomocí tzv. helpdesku.
- 54 -
Výsledky Výsledek bakalářské lze z funkčního pohledu rozdělit do dvou částí a to teoretické a praktické. Teoretická část hovoří o problematice internetového obchodování, provozu internetového obchodu včetně komunikace s programátory a jeho vývoji. Dále popisuje jazyky pro tvorbu webových stránek. Výsledkem praktické části je internetový obchod zdrojového kódu uvedeného v přílohách číslo 1 aţ 10. Kaţdá z těchto příloh obsahuje programový kód jednoho z funkčních souborů naprogramovaných v jazyce PHP. Graficky tento projekt zobrazuje příloha číslo 11, kde jsou 2 snímky webové stránky tak, jak ji vidí zákazník při objednávce.
- 55 -
Závěry a doporučení Zadáním bakalářské práce bylo popsat a blíţe rozebrat důvody vzniku internetových obchodů, jejich realizaci a provoz. Mezi hlavní důvody vzniku patří zrychlení, zjednodušení a většinou i cenové zvýhodnění nákupu z pohledu zákazníka a sníţení provozních nákladů provozovatele. Internetové obchody vznikly v první polovině 90. let 20. století v USA. Následoval dynamický rozvoj, který pokračuje i v současné době. Oblíbenost nakupování přes internet celosvětově stále roste, coţ je patrné i v České republice. Základem úspěchu podnikatele, který uvaţuje o realizaci internetového obchodu, je mít definovaný produkt, zjištěnou potřebu zákazníka a korektně provedený průzkum trhu. Vlastní realizaci internetového obchodu zpravidla realizují firmy zabývající se touto činností. Webové stránky jsou tvořeny pomocí jazyků pro tvoru stránek. Základem je HTML, které bylo dále rozšiřováno a kombinováno s doplňky jako např. CSS a JavaScript. V současné době patří mezi nejrozšířenější jazyk PHP (PHP: Hypertext Preprocessor, původně Personal Home Page) Za účelem konkurenceschopnosti internetového obchodu je nutné neustále pracovat na optimalizaci a vylepšování stávajících funkcí, vzniku funkcí nových a zaměřit se na přizpůsobení internetového obchodu novým trendům v dané oblasti. Provozovatel internetového obchodu určuje, jakým směrem se bude jeho projekt posouvat a jaké funkce chce zavést. Řeší tedy zásadní strategické otázky, o kterých komunikuje s programátory pomocí tzv. helpdesku. Pro provoz vytvořené aplikace v komerčním prostředí, by bylo nutné, provést úpravu uţivatelského rozhraní z grafické stránky. To lze poměrně snadno a rychle pomocí editorů pro tvorbu webové grafiky nebo vyuţitím šablon dostupných na webových serverech zabývajících se problematikou internetových obchodů. Z hlediska bezpečnosti celého systému chybí ošetření práv uţivatele. Tzn. přesně definovat, kdy můţe uţivatel ještě dělat změny v databázi (modifikovat nebo rušit objednávku) sám a kdy uţ tuto změnu musí provést provozovatel internetového obchodu. Teoretickým zpracováním bylo splněno zadání bakalářské práce, které bylo dále rozšířeno o související oblasti a praktickou realizaci internetového obchodu.
- 56 -
Seznam použité literatury KLASICKÉ ZDROJE: [1]
KOSEK, Jiří. HTML – tvorba dokonalých WWW stránek. Praha : Grada Publishing, 1998. ISBN 80-7169-608-0.
[2]
KOSEK, Jiří. PHP – tvorba interaktivních internetových aplikací. Praha : Grada Publishing, 1992. ISBN 80-7169-373-1.
[3]
LINHART, Petr; kolektiv. APACHE & PHP/FI 2.0. Praha : Neokortex, 1998. ISBN 80-9022-302-8.
[4]
ŠKULTÉTY, Rastislav. JavaScript: Programujeme internetové aplikace. Praha : Computer Press, 2001. ISBN 80-7226-567-5.
- 57 -
ELEKTRONICKÉ ZDROJE: [5]
Cizí klíč [online] Wikipedie, otevřená encyklopedie [cit. 2009-06-14] Dostupný z WWW: < http://cs.wikipedia.org/wiki/Ciz%C3%AD_kl%C3%AD%C4%8D> .
[6]
CRM [online] Wikipedie, otevřená encyklopedie [cit. 2009-03-01] Dostupný z WWW: < http://cs.wikipedia.org/wiki/CRM> .
[7]
CSS [online] Wikipedie, otevřená encyklopedie [cit. 2009-01-03] Dostupný z WWW: < http://www.kosek.cz/clanky/web/css-ref.html> .
[8]
Databáze [online] Wikipedie, otevřená encyklopedie [cit. 2009-02-17] Dostupný z WWW: < http://cs.wikipedia.org/wiki/Datab%C3%A1ze> .
[9]
Internetový obchod [online] Wikipedie, otevřená encyklopedie [cit. 2008-12-10] Dostupný z WWW: < http://cs.wikipedia.org/wiki/Internetov%C3%BD_obchod> .
[10]
Opportunity Cost [online] Server systému eAMOS, Jihočeská univerzita [cit. 2009-06-15] Dostupný z WWW: < http://www.eamos.cz/amos/kat_spo/externi/kat_spo_2966/1/kap111.html> .
[11]
Perl [online] Wikipedie, otevřená encyklopedie [cit. 2009-06-26] Dostupný z WWW: < http://cs.wikipedia.org/wiki/Perl> .
[12]
XHTML [online] The World Wide Web Consortium [cit. 2009-02-23] Dostupný z WWW: < www.w3c.org/tr/xhtml1> .
- 58 -
Seznam použitých zkratek ASP
Active Server Pages
zpracování skriptu na straně serveru (Microsoft)
CERN
Cente Européenne de Rechere Nucléaire
Evropské centrum jaderného výzkumu
CGI
Common Gate Interface
rozhraní pro komunikaci skriptu se serverem
CSS
Cascading Style Sheets
kaskádové styly
CRM
Customer relationship management
řízení vztahů se zákazníky
DBMS
DataBase Management System
Systém Řízení Báze Dat
DOM
Document Object Model
objektový model dokumentu
DTD
Document Type Definition
definice značkovacích jazyků
FI
Form Interpretr
zpřístupňuje databáze pro Web
FTP
File Transfer Protocol
protokol pro přenos souborů
GUI
Graphical User Interface
grafické uţivatelské rozhraní
HTML
HyperText Markup Language
jazyk pro tvorbu stránek
HTTP
HyperText Transfer Protocol
protokol pro přenos stránek
IETF
Internet Engineering Task Force
instituce pro vývoj internetu
NSCA
National Center for Supercomputing
Národní centrum pro vývoj
Applications
počítačových aplikací
ODBC
Open Database Connectivity
Konektivita otevřené báze
PHP
Professional Home Pages
původní pojmenování
PHP
Hypertext Preprocessor
dnešní pojmenování
SGML
Standard Generalized Markup
metajazyk definující značkovací
Language
jazyky
SQL
Sructured Query Language
databázový programovací jazyk
SSJS
Server Side JavaScript
zpracování skriptu na straně serveru (Netscape)
SSL
Secure Socket Layer
bezpečná komunikace serveru a klienta
URL
Uniform Resource Locator
jediná a jedinečná adresa - 59 -
W3C
Word Wide Web Consorcium
organizace, starající se o Web
WWW
World–Wide Web
svět opředen pavučinou
XHTML
eXtensible Hypertext Markup Language
nový jazyk pro tvorbu stránek
XML
eXtensible Markup Language
nezávislý formátu pro reprezentaci
XSL
eXtensible Stylesheet Language
standard pro transformaci XML Dokumentu
- 60 -
Slovník CRM Customer relationship management (řízení vztahů se zákazníky) je databázovou technologií
podporovaný
proces
shromaţďování,
zpracování
a
vyuţití
informací o zákaznících firmy. Umoţňuje tak poznat, pochopit a předvídat potřeby, přání a nákupní zvyklosti zákazníků a podporuje oboustrannou komunikaci mezi firmou a jejími zákazníky.
Jako
CRM
v
přeneseném
smyslu
se
také
označuje
softwarové,
hardwarové a personální vybavení firmy, které je výkonem těchto funkcí pověřeno. CRM Customer relationship management is the process of collecting, processing and utilization of the information on company´s customers which is supported by database technology. Thus it makes possible to identify, understand and forecast customers´ needs, wishes and shopping customs and it supports double-sided communication between the company and its customers. In transferred meaning is as CRM also called the software, hardware and personal layout of the company which is entrusted with performing these functions.
Databáze Někdy jsou databáze označovány jako datová základna. Je to určitá uspořádaná mnoţina informací (dat) uloţená na paměťovém médiu. V širším smyslu jsou součástí databáze i softwarové prostředky, které umoţňují manipulaci s uloţenými daty a přístup k nim. Tento software se v české odborné literatuře nazývá systém řízení báze dat (SŘBD). Běţně se označením databáze – v závislosti na kontextu – myslí jak uloţená data, tak i software (SŘBD). Database Sometimes are databases called as base of data. It ´s certain organised set of information (data) saved on memory medium. In larger sense the part of the database are also software tools which enable the manipulation with saved data and the access to them. This software is in Czech professional literature called as the system of data base operation. Routinely is under the signification database – regarding the context - considered both saved data and software.
- 61 -
Internetový obchod Je to počítačová aplikace pouţívaná na B2B (business–to–business, tzn. "obchodník k obchodníkovi") nebo B2C (business–to–consumer, tzn. "obchodník k zákazníkovi") komerci v prostředí internetu (jedná se o podmnoţinu E–commerce, prodávající fyzické zboţí, v menší míře sluţby). Bývá také označován jako e–shop. Online shop This is a computer application used for B2B (business-to-business) or for B2C (businessto-consumer) commerce in the internet environment (it is concerned with the E-commerce subset, selling physical goods, less commonly services).Can by also called an e-shop.
Jazyky pro tvorbu webových stránek Jedná se o programovací jazyky, pomocí kterých lze naprogramovat stránky, jejichţ obsah lze zobrazit v prohlíţeči webových stránek. Languages for web pages design That means programming languages helping to programme pages whose contents can be displayed in web pages browser.
- 62 -
Přílohy Příloha č. 1
Zdrojový kód: index.php
Příloha č. 2
Zdrojový kód: pridej.php
Příloha č. 3
Zdrojový kód: odebrat.php
Příloha č. 4
Zdrojový kód: objednat.php
Příloha č. 5
Zdrojový kód: objednavka.php
Příloha č. 6
Zdrojový kód: podekovani.php
Příloha č. 7
Zdrojový kód: nabidka.php
Příloha č. 8
Zdrojový kód: nabidka_pridat.php
Příloha č. 9
Zdrojový kód: nabidka_smazat.php
Příloha č. 10
Zdrojový kód: objednavky.php
Příloha č. 11
Grafické rozhraní z pohledu zákazníka
- 63 -