ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická. Bakalářská práce. Jiří Šebek

Rozměr: px
Začít zobrazení ze stránky:

Download "ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická. Bakalářská práce. Jiří Šebek"

Transkript

1 ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Bakalářská práce 2012

2 ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Katedra grafiky a interakce [DCGI] Webová aplikace (eshop) pro využití v obchodní organizaci květen 2012 Student: Vedoucí práce: Ing. Ondřej Macháček

3 Čestné prohlášení Prohlašuji, že jsem zadanou bakalářskou práci zpracoval sám s přispěním vedoucího práce a používal jsem literaturu v práci uvedenou. Dále prohlašuji, že nemám námitek proti půjčování nebo zveřejňování mé bakalářské práce nebo její části se souhlasem katedry. V Praze dne

4 Poděkování Děkuji Ing. Ondřeji Macháčkovi, vedoucímu bakalářské práce, za jeho cenné rady a připomínky, jimiž mi ochotně pomáhal. Dále děkuji své rodině za podporu při studiu.

5

6 Anotace: Bakalářská práce řeší úlohu vytvoření efektivní webové aplikace eshopu pro organizaci Eurocontracts s.r.o., zabývající se prodejem a distribucí elektronických zařízení, zejména zařízení radiových spojů a elektronických pojítek. Zadaný úkol, který má zeefektivnit administrativní práci organizace, zejména kontakt se zákazníky, zpřehlednit zákaznickou agendu a fakturaci zakázek, byl řešen pomocí technologií html, css, javascript, PHP, které autor zkombinoval tak, aby výsledné řešení úkolu splňovalo požadavky na bezpečný provoz podle současných standardů pro provoz podobných webových stránek. Řešení umožňuje zejména administrátorovi tohoto webu tyto hlavní kategorie funkčních požadavků: Evidence uživatelů, Evidence zboží a Evidence objednávek. Podrobný popis těchto funkčních požadavků je podrobně uveden v závěru této práce, spolu s výsledky testů a validací tohoto systému. Přínos této práce lze vidět zejména v odstínění prezetační vrstvy aplikace od perzistentní, což zvětšuje přehlednost a bezpečnost aplikace. Summary: This bachelor thesis deals with the creation of effective web application eshop for the organisation Eurocontracts s.r.o., which concentrates on the sales and the distribution of the electronic devices, especially the devices of the radio communication and the electronic connecting links. The given task is to make administrative work more effective. This matter covers particularly simplification of contacting the customers and making billing more clear. The task was solved using the technologies html, css, javascript, PHP. The author used these technologies to create the final application save according to the modern standards for running similar web applications. The proposed solution allows the administrator of the web application to use particularly these main categories of the functionality requirements: Evidence of users, Evidence of goods and Evidence of orders. Detailed description of each of these categories is referred to in the conclusion of this thesis. The gain of this thesis can be seen especially in the separation of the presentation layer from perzistant. This separation guarantees more security to the application and makes it more user friendly.

7 Obsah 1. Úvod Rešerše aplikace Problematika eshopu Výběr vhodného programovacího jazyka Výběr vhodného databázového systému Výběr modelu, metodiky vývoje softwaru Plán vývoje Sběr požadavků, analýza, návrh Vize Uživatelé Katalog požadavků Funkční požadavky Nefunkční požadavky Use case diagram Stavový diagram uživatelů Diagram nasazení Doménový model ER model Analytický model tříd Grafický návrh aplikace Implementace Struktura adresáře projektu Životní cyklus formuláře Bezpečnost Implementace spojení s databází Komunikace mezi stránkami Implementace usecase Zobrazení, přidávání a rozesílání aktualit Uživatelské účty Vyhledávání a zobrazování zboží Funkce košíku... 37

8 4.6.5 Správa zboží a kategorií Správa objednávek Použité javascripty Stránkování Validace html a css Testování tabulka regresivních testů Instalace Výběr serveru Samotná instalace Bezpečnost na úrovni webového serveru Závěr Seznam zkratek Seznam tabulek, obrázků a ukázek kódů Tabulky Obrázky Ukázky kódů Seznam použité literatury... 55

9 Úvod 1. Úvod Úkolem bakalářské práce je vytvořit webovou aplikaci eshop, pro využití v obchodně výrobní organizaci Eurocontract s.r.o., která umožní zkvalitnění a urychlení hospodářské a administrativní činnosti organizace, zvýší efektivnost kontaktu se zákazníky, a tím zvýší i příjmy organizace. Tento typ aplikace je v dnešní době velmi rozšířený, jeho jednoznačnou výhodou je rychlá a přehledná informovanost zákazníka, možnost jeho okamžité reakce na nabídku organizace, promptní uzavření transakce, a tím celkové zefektivnění obchodního vztahu. Zároveň tato webová aplikace umožní ucelenou nabídku zboží a služeb organizace, jakož i přehledně prezentovat základní technické parametry nabízeného zboží a tím dává možnost zákazníkovi se rychle zorientovat v nabidce organizace. V první části je popsána problematika eshopu a výběr vhodného programovacího jazyka. Dále je zde rozebrán výběr modelu a metodiky vývoje softwaru. Druhá část se zabývá konkrétním řešením sběru požadavků, analýzy, návrhu aplikace. Dané diagramy byly vytvořeny pomocí nástroje Enterprise Architect. V třetí části je popsána konečná implementace a testování. Dané řešení bylo navrženo tak, aby bylo v souladu s moderními OOP nároky na aplikaci a tedy aby nebyl problém aplikaci rozšířit. Aplikace je navržena tak, aby byla bezpečná a zárověň výkonná. Implementace obsahuje jak veřejnou tak administrační část. V průběhu řešení práce byly porovnávány jednotlivé způsoby implementace a diskutovány jejich výhody. Závěr práce vyhodnocuje celkový způsob řešení této aplikace. 9

10 Rešerše aplikace 2. Rešerše aplikace 2.1 Problematika eshopu Mezi internetovými aplikacemi patří eshop v současné době mezi nejčastější. Slouží zákazníkovi k vyhledávání zboží a jeho objednání. Majiteli eshopu slouží k nabídce produktů a následně k příjmu objednávky od zákazníka. Existuje několik způsobů jak takovou aplikaci vytvořit. První je aplikaci naprogramovat v některém programovacím jazyce, což je i obsahem této bakalářské práce. Většinou se jedná o skriptovací jazyk. Druhým způsobem je použít CMS systém či opensource eshop. Zde bývá problém vybrat ten správný, protože některé CMS systémy jsou primárně jen redakční systémy a buď velmi špatně nebo vůbec nepodporují funkce eshopu. Také záleží na výběru toho, jestli je CMS systém opensource nebo komerční. Z opensource patří mezi nejznámnější Joomla, WordPress. Komeční CMS systém je např. JPublisher. Třetím způsobem je využít již naprogramovaného opensource eshopu. Tato varianta se může zdát v tomto ohledu nejlepší alternativou, avšak mohou při práci s nimi být problémy např. obtížná práce s tabulkami, nízká výkonnost. Výhoda eshopu oproti klasickému kamennému obchodu je zřejmá. Zákazník nemusí opustit práh domu a může si objednat cokoli nalezne v nabídce eshopu. Stále více uživatelů využívá tento potenciál internetu. Eshop může také vydělávat sám o sobě z reklam, které může obsahovat. 2.2 Výběr vhodného programovacího jazyka V dnešní době existuje velké množství programovacích jazyků a různých frameworků, které je vylepšují a jsou efektivní. Každý z těchto jazyků se však hodí jen na vývoj některých aplikací. K nejznámějším jazykům patří C, C++, Java, C#, Visual Basic, PHP. Na obr. 1 je znázorněno rozdělení programovacích jazyků podle úrovně. 10

11 Výběr vhodného programovacího jazyka Obr. 1: Rozdělení programovacích jazyků C je jazyk, který se používá převážně pro psaní systémových sofwarů, převážně unixových. Jedná se o kompilovaný jazyk, který někdo řadí mezi nízkoúrovňové a někdo mezi vysokoúrovňové jazyky. Oproti ostatním nižším jazykům jako např. Assembler je nezávislý na platformě a oproti ostatním vyšším jazykům zde neexistují objekty, ale jen datový typ struct. Většina ostatních jazyků přejímá syntax od jazyku C. Také zde není žádný garbage collector, takže programátor musí sám uvolňovat místa v paměti, které již nebude používat, aby nevznikly memory leaky. C++ je objektově orientovaný vyšší jazyk. Jedná se o rozšíření jazyka C. Podporuje nejen naivní a procedurální programování jako jazyk C, ale také objektově orientované a generické programování. Není však určen pro psaní webových aplikací. Java je velmi rozšířený moderní objektově orientovaný programovací jazyk. Je velmi podobná C++, avšak je pomalejší. Výhodou tohoto jazyku je garbage collector, který se stará o správu paměti. Zde se webový projekt dá vytvořit jako jeden velký aplet, který bude umístěn do html stránky. Avšak nevýhodou oproti klasickému webu tvořeném html a javascriptem je pomalé načítání apletů. Na druhou stranu mají velký potenciál ve vývoji. Druhá cesta vývoje je přes Enterprise Edition Java (Java EE). Ta se však používá spíše pro větší projekty. 11

12 Výběr vhodného programovacího jazyka C# a Visual Basic jsou programovací jazyky vytvořené firmou Microsoft. V současné době si většina programátorů oblíbila C#. Důvod je jednoduchý, Visual Basic má svoji vlastní syntax, ale C# syntax se odvíjí od jazyka C. C# je velmi podobný jazykům jako Java nebo C++. Visual Basic však má své výhody jako např zápisu XML přímo do kódu. Oba tyto jazyky nejsou přímo určeny pro vývoj webových aplikací. PHP je skriptovací jazyk, který je určen pro tvorbu dynamických webových stránek. Skripty vytvořené v PHP se nemusí překládat. PHP je podporováno u většiny webhostingových serverů a syntaxe PHP je podobná jako u jazyka C. Dá se velmi rychle naučit a v současné době se většinou využívá ve webových aplikací. Nevýhodou tohoto jazyka je, že programátor může snadno vytvořit velmi chaotický kód, ve kterém se ostatní lidé, kteří kód nevytvářeli, nevyznají. Z těchto jazyků se na webové aplikace hodí nejvíce Java EE, a PHP. V ostatních jazycích by byl vývoj buď zdlouhavý a náročný (jazyk C) nebo tento jazyk není přizpůsoben pro vývoj webových aplikací. Z těchto dvou jazyků jsem vybral PHP. Jeho další výhodou je, že velmi dobře komunikuje s databází MySQL a je multiplatformní. Na základě mnoha jazyků vznikly frameworky, které usnadňují práci programátorům. Z C# nebo Visual Basicu vznikl ASP.NET. Z PHP vzniklo řada frameworků jako Zend, Nette, Smarty. Každý z těchto frameworků má své výhody. Smarty odděluje aplikační vrstvu od zobrazovací (prezentační), což je velmi výhodné pro velké projekty, na kterých pracuje více lidí. Aplikační vrstvou jsou myšleny PHP skripty a zobrazovací vrstva je klasická html část webu. Nette a Zend obsahují MVC komponenty, které řeší například autorizaci a autentifikaci. V této bakalářské práci jsem se rozhodl vybrat jazyk PHP pro programování na straně serveru. Na klientské straně jsou vybrány technoogie html, css a javascript. Výsledná aplikace bude komunikovat jak je ukázáno na obr. 2. Tomuto typu aplikace se říká Dynamický web. Jakýkoli framework by byl pro tuto aplikaci zbytečný, frameworky se lépe využijí na větších projektech, kdy na jednom projektu pracuje více lidí. Další zpomalení ve vývoji aplikace by představovalo nastudovat jak daný framework funguje. Problémy u frameworků také bývají v tom, že chyby v aplikaci mohou být na straně frameworku. Tyto chyby se mnohem hůře hledají. 2.3 Výběr vhodného databázového systému Ze všech databázových systémů, které jsou v současnosti k dispozici jsem zvolil MySQL. Je pro tento projekt výhodný, protože podporuje standarty SQL, není placený a ve spojení s PHP je rychlý. Také jako PHP je podporovaný u většiny webhostingů a je multiplatformní. Jedním z velkých konkurentů MySQL je Oracle, který ovšem placený je. 12

13 Výběr modelu, metodiky vývoje softwaru Obr. 2: Dynamický web (převzato z lit. 1) 2.4 Výběr modelu, metodiky vývoje softwaru U softwarových projektů je dobré promyslet, jestli nebude vyvíjen podle nějakého modelu či metodiky. Velmi záleží na velikosti projektu. U malých projektů, které se dají naprogramovat např. do týdne, není potřeba tyto postupy používat. U větších projektů se tyto postupy však osvědčí. Model nám určuje jednotlivé fáze SW projektu, zatímco metodika nám definuje co v jednotlivých fázích dělat a jaké mají být výstupy k dané fázi. Modelů a metodik existuje mnoho, v této bakalářské práci jsem zvolil spirálový model. Spirálový model má výhodu např. oproti modelu vodopádu, že se v jednotlivých fázích můžeme vracet. Princip spirálového modelu je, že iterujeme postupně všechny fáze viz obr. 3. Když při konzulaci se zákazníkem zjistíme nedostatky, tak je v další iteraci opravíme. Obr. 3: Spirálový model (převzato z lit. 2) 13

14 Plán vývoje 2.5 Plán vývoje Celý projekt byl naplánován od počátku podle spirálového modelu viz kapitola 2.4. Schůzky se zadavatelem z firmy Eurocontracts s.r.o. se konaly většinou jednou za 14 dnů, během kterých se řešily podrobnosti jednotlivých částí v projektu. Na začátku bylo těchto schůzek méně, avšak později kdy přibývaly use casy, byly tyto schůzky pravidelnější. Výsledný plán vývoje softwarovu je znázorněn na obr.4. Obr. 4: Plán vývoje softwaru 14

15 Sběr požadavků, analýza, návrh 3. Sběr požadavků, analýza, návrh 3.1 Vize Jak již bylo řečeno v úvodu této práce, systém bude sloužit jako webová aplikace (e shop) pro využití v obchodně výrobní organizaci, který umožní zkvalitnění a urychlení hospodářské a administrativní činnosti organizace, kontakt se zákazníky, a tím může zvýšit obrat a zefektivnit činnost organizace. Návrh systému se soustředí na tyto body: základní informace a prezentaci firmy přehlednost nabízených produktů a služeb vytvoření základních funkcí eshopu (dle katalogu požadavků níže) zajistit celkovou funkčnost aplikace rozdělení aplikace na veřejnou a administrační část, implementována bude jak veřejná tak administrační část použití vhodného programovacího jazyku/frameworku pro vývoj webových aplikací 3.2 Uživatelé Systém bude podporovat tři typy uživatelů: neregistrovaný zákazník registrovaný zákazník administrátor (admin) Neregistrovaný zákazník neregistrovaný zákazník se může registrovat, prohlížet zboží podle kategorií, prohližet stránky eshopu, vyhledávat zboží podle názvu nebo popisu. Registrovaný zákazník registrovaný zákazník může vše co neregistrovaný zákazník. Navíc se může přihlásit se, přidávat zboží do košíku, objednat obsah celého košíku, měnit údaje vlastního účtu nebo jej smazat. Admin admin může dělat vše co zákazník, ale navíc si může prohlížet veškeré objednávky, mazat je, změnit stav objednávky na vyřízenou, může prohlížet faktury k objednávkám, změnit oprávnění uživatele (zákazník, admin), smazat účet, přidat, upravit zboží z kategorie, odebrat zboží z kategorie, přidat novinky na stránky a zárověň tyto novinky rozeslat registrovaným uživatelům. 15

16 Katalog požadavků 3.3 Katalog požadavků Katalog požadavků zachycuje požadavky zadavatele. Požadavky se dělí na funkční a nefunkční (někdy též obecné) viz obr. 5. Většinou obsahují co nejméně informací o implementaci. Funkční požadavky obsahují co daný systém bude umět. Nefunkční požadavky definují systém jako celek. Většinou se jedná o požadavky na hardware. Obr. 5: Rozdělení požadavků (převzato z lit. 3) Funkční požadavky Evidence uživatelů registrace uživatele přihlášení uživatele změna vlastních údajů smazání vlastního účtu změna oprávnění uživatele (pouze Admin) smazání uživatele (pouze Admin) Evidence zboží přidání zboží do košíku smazaní zboží z košíku změna počtu zboží v košíku vysypání celého košíku přidání zboží do kategorie (pouze Admin) úprava informací o zboží do kategorie (pouze Admin) odebrání zboží z kategorie (pouze Admin) přidání nové kategorie (pouze Admin) přejmenování kategorie (pouze Admin) 16

17 Nefunkční požadavky odebrání staré kategorie (pouze Admin) objednání zboží vyhledání zboží přes kategorii vyhledání zboží přes název nebo popis s využitím vyhledavače Evidence objednávek uložení objednávky výpis všech objednávek výpis nevyřízených objednávek generování faktur k dané objednávce Nefunkční požadavky Grafické uživatelské rozhraní Provoz na osobním počítači Program bude vyvíjen v programovacím jazyce PHP Software bude kompatibilní s OS Windows 7, Vista a XP s nainstalovaným prohlížečem Firefox verze 8.0 a výše Bude podporováno uložení dat v DB Systém by měl být intuitivní a uživatel by neměl mít problémy s užíváním aplikace K užívání aplikace pro uživatele bude nutná klávesnice a myš K provozu aplikace na straně serveru bude potřeba server s nainstalovaným Apachem, s podporou PHP a MySQL Aplikace by měla chránit svá data před nahráním nesprávných dat (jak na straně klienta tak na straně serveru) Systém nebude vyžadovat pro klienty kromě osobního počítače s OS Windows 7, Vista nebo XP s nainstalovaným prohlížečem Firefox verze 8.0 nebo výší verze žádné další HW vybavení jako databázový server apod. Pro server bude vyžadován databázový server. 17

18 Use case diagram 3.4 Use case diagram Use case diagram se používá na zachycení funkčních požadavků. Obsahuje aktéry, use cases (případy užití), hranice systému a relace. Na obr. 6 je znázorněn use case diagram eshopu. Obr. 6: Use case diagram eshopu 18

19 Stavový diagram uživatelů 3.5 Stavový diagram uživatelů Stavový diagram se používá na zachycení stavů, které se mění v čase. Jedná se o dynamický diagram chování. Obsahuje stavy (jako např. počáteční, koncový) a přechody. Každý přechod může být popsán událostí, podmínkou a akcí. Na obr. 7 je znázorněn stavový diagram eshopu pro stavy uživatelů. Obr. 7: Stavový diagram eshopu 19

20 Diagram nasazení 3.6 Diagram nasazení Diagram nasazení zachycuje hardwarové komponenty a procesy mezi nimi a softwarem. Zde se používají uzly, spojení mezi nimi a artefakty. Artefakty bývají zdrojové kódy, tabulky v databázi. Tento typ diagramu patří mezi implementační diagramy. Na obr. 8 je znázorněn tento diagram pro eshop, je na něm vidět, že databáze je na jiném stroji než server nebo klient (tři různé uzly grafu). Obr. 8: Diagram nasazení eshopu 20

21 Doménový model 3.7 Doménový model Doménový model patří do části analýzy. Jeho cílem je zachytit model systému nezávislý na použité technologii. Na obr. 9 je znázorněn tento doménový model pro eshop, datové typy proměnných a metody by zde neměly být zobrazeny, ale v EA jsem přímo z tohoto modelu vycházel pro analytický model tříd v návrhové části, kde již mají být. Obr. 9: Doménový model eshopu 21

22 ER model 3.8 ER model ER model znamená Entityrelationship model. Tento typ modelu patří již do návrhové části. Vytváří ucelený obrázek o tom, které tabulky budeme mít v databázi. Na obr. 8 je znázorněn tento ER model pro eshop, avšak neobsahuje jen entity a relace, ale přímo tabulky s datovými typy jako INTEGER, VARCHAR a integritními omezeními jako NOT NULL, PRIMARY KEY a UNIQUE. Jak je na obr. 9 vidět entita Zboží se zde vyskytuje 2x. Jednou jako tabulka Zboží, která reprezentuje zboží v nabídce v určité kategorii. A podruhé jako Zboží objednávka, aby zboží, které již někdo objednal, zůstalo v objednávce při smazání zboží z kategorie. SQL dotazy najdete v php stránce, která vytvoří tyto tabulky i s uživatelem administrátorem. Z obr. 10 je vidět, že používáme cizí klíče, takže nemůžeme použít engine MyISAM. Engine, který jsme použily, je InnoDB. Tento engine podporuje cizí klíče. Obr.10: ER model eshopu 22

23 Analytický model tříd 3.9 Analytický model tříd Analytický model tříd je diagram, který zachycuje celkový statický pohled na aplikaci. Účelem je znázornit typy objektů, proměnných a jejich vztahy. Část tohoto diagramu vychází z doménového modelu. Na obr. 11 je znázorněn tento diagram pro eshop. Neobsahuje všechny soubory z důvodu přehlednosti, ale vždy je zde alespoň balíček, který reprezentuje funkcionalitu souborů. Obr.11: Analytický model tříd eshopu 23

24 Grafický návrh aplikace Perzistentní vrstva na obr.11 bude mít v aplikaci důležitou roli. Bude oddělovat databázovou vrstvu od prezentační, zlepšovat bezpečnost aplikace a zjednodušovat práci s databází. Při změně databáze z MySQL např. na Oracle postačí vyměnit třídy DBConnection a DB. Je tedy výhodná při změnách Grafický návrh aplikace Grafický návrh aplikace je jedna z částí, kterou se zadavatel projektu nejvíce vnímá. Požaduje, aby vzhled byl takový, aby mu co nejvíce vyhovoval. Proto často nestačí pouze jeden návrh, který by byl dokonalý a postačil. V případě eshopu byly postupně vytvořeny dva výsledné návrhy (viz obr. 13 a obr. 14), ze kterých si zadavatel vybral druhý (viz obr. 14). Je výhodou, že byla použita spirálová metodika vývoje softwaru, jak bylo popsáno v kapitole 2.3, protože se návrhy mohly měnit v průběhu vývoje. Nejprve byla vytvořena šablona grafiky jen pro úvodní stránku a pak u každého use case se podle ní udělala grafika dalších stránek. Určité aspekty na grafice museli být dodrženy jako barvy firmy, což je odstín modré. Vzhledem k teorii barev byla zvolena jedna komplementární barva a jedna barva doplňková k naší základní barvě modré (viz obr. 12). Oranžová a modrá jsou přirozené komplementární barvy vůči sobě. Doplňková barva se může vzít jak ze strany oranžové tak ze strany modré, v našem případě z obou. Obr. 12 Kruh barev (převzato z lit. 4) K těmto barvám, které jsme si již vybrali je potřeba vybrat ještě barvu písma, která musí být kontrastní vzhledem k pozadí dané oblasti. V prvním návrhu je pozadí střední části bílé, proto barva písma je černá. V druhém návrhu je pozadí navigace a středu modré, proto byla zvolena bíla barva písma. V horní části eshopu je zvolena barva písma tmavě modrá, protože u loga stránky je bílé pozadí. 24

25 Grafický návrh aplikace Obr. 13: Návrh GUI 1 Obr. 14: Návrh GUI 2 výsledná grafika 25

26 Implementace 4 Implementace Jak bylo popsáno v kapitole 2.2 pro implementaci eshopu byl zvolen jazyk PHP s databázovým dotazovacím jazykem MySQL. Na straně klienta byl použit jazyk Javascript a značkovací jazyk html 4.0 a css. 4.1 Struktura adresáře projektu Adresářová struktura tohoto eshopu obsahuje 4 hlavní adresáře (viz obr. 15). Jedná se o adresář classes, ve kterém jsou soubory php s definoványmi třídami použítých v eshopu. Obr. 15: Adresářová struktura projektu 26

27 Životní cyklus formuláře Druhý adresář se jmenuje faktury. Zde se budou ukládat faktury v pdf formátu, které se generují při přijetí objednávky od zákazníka. Třetí adresář se nazývá img. Jsou v něm všechny obrázky, které jsou použity v designu aplikace. Obsahuje jeden podadresář zbozi, kam se ukládají obrázky každého zboží eshopu, které admin uloží. Poslední adresář je js, který obsahuje javascriptové soubory. Tyto skripty jsou převážně pro kontrolování formulářů na straně klienta. Okolo těchto adresářů jsou ostatní php stránky. Adresář css jsem nezavedl pro lepší propojení css stylů s obrázky ve složce img. 4.2 Životní cyklus formuláře V eshopu jsou často používány formuláře od registrace až po odeslání objednávky. Formuláře bývají často bezpečnostním rizikem celé aplikace. Životní cyklus formuláře obecně obsahuje několik kroků. Nejprve se zobrazí. Pokud existují předvyplněná data z databáze tak se zobrazí s nimi, jinak je prázdný. V dalším kroku uživatel vyplní nebo upraví data ve formuláři a odešle je. Zde ještě na straně klienta existuje kontrola dat pomocí javascriptu, která buď odešle formulář nebo ne podle korektnosti vyplněných dat. Pokud uživatel má vypnuté javascripty, to znamená, že kontrola na straně klienta není, je formulář odeslán na server. Na straně serveru se nejprve zkontrolují data ve formuláři. Pokud jsou chybná, tak se vygeneruje stejný formulář s předvyplněnými daty. Pokud jsou správná, tak systém provede činnost požadovanou formulářem. Například uloží nového uživatele do databáze a pošle zpět zprávu, že uživatel byl vytvořen. Celý proces je znázorněn na obr. 16. V našem eshopu je tento postup dodržován. Obecně všechny soubory s formuláři jsou nazvány profilxxx.php jako např. profiluzivatele.php. Tento formulář je kontrolován javascriptem. Formulář odesílá data na Controllerxxx.php, např. ControllerUzivatele.php. Zde je automat, který vykoná danou funkci jako je např. přihlášení, registrace. 27

28 Bezpečnost Obr. 16: Životní cyklus formuláře U formulářů se setkáváme s dalším problémem, jak zabránit dvojímu odeslání dat. Tento problém bývá způsoben chybou uživatele (2x stiskl tlačítko odeslat) nebo se někdo snaží napadnout naší aplikaci. Tento problém byl vyřešen tím, že vždy po odeslání se stránka přesměruje na Controllerxxx.php (viz obr. 16). 4.3 Bezpečnost Obecně každá aplikace by měla být bezpečná. U webových aplikací se na bezpečnost dbá o to více, protože na internet se dostane dnes každý. A když někdo nalezne nezabezpečenou aplikaci na internetu, tak může způsobit velké škody od smazání celé databáze až po nahrání škodlivého souboru na server. Před desítkami let musel útočník mít velké znalosti, aby mohl něco takového udělat. Žádně softwary na provedení útoku neexistovaly. Dnes je situace opačná. Softwarů na různé útoky existuje hodně a útočník často nepotřebuje mít ani základní znalosti o programování či počítačové síti. Druhů útoků na webovou aplikaci existuje hodně. Jedná se o SQL injection, Crosssite scripting (XSS), CrossSite Request Forgeries (XSRF), nahrání škodlivého kódu na server a jiné. Útočníkovi také mohou velice pomoci v útoku chybová hlášení, které mohou obsahovat pro něj zajímavé informace. V navrženém eshopu neobsahují chybové hlášky žádné přidané informace pro útočníka. Poslední velmi důležitou věcí je ochrana hesla. V následujících odstavcích této kapitoly jsou popsány jednotlivé druhy útoků a způsoby ochrany navržené aplikace eshopu proti výše zmíněným nežádoucím útokům. 28

29 Bezpečnost Jednou z důležitých ochran je přímo chránit vstup od uživatele z textového pole formulářů pomocí funkce mysql_real_escape_string(). Tato funkce zaručuje přidání zpětných lomítek před nebezpečné znaky jako apostrof (viz obr. 17). Takto bezpečně upravené znaky pak můžeme použít pro dotazování k databázi. Když tyto uložené znaky poté chceme zobrazit uživateli je potřeba lomítka odstranit pomocí funkce stripslashes() (viz ukázka kódu 1). Obr. 17: Převedení nebezpečných znaků na bezpečné SQL injection je technika útoku, kdy útočník vloží do neošetřeného uživatelského vstupu sql dotaz. Díky tomu může vkládat, měnit a mazat informace v databázi. Obranou je ošetření uživatelských vstupů pomocí funkce mysql_real_escape_string(), jak je uvedeno v předešlém odstavci. XSS je útok, kdy útočník vloží do stránky škodlivý html kód nebo javascriptový kód. To může využít k znefunkčnění stránek, změnění vzhledu nebo k získávání informací od uživatele. Ochrana proti takovému typu útoku je filtrovat informace od uživatele, které zobrazujeme funkcí htmlspecialchars(). Tato funkce převádí znaky jako < > na html entity (viz obr. 18). V eshopu se jedná např. o zobrazení informací o uživateli v horní části stránky (viz ukázka kódu 1). Obr. 18 Převedení nebezpečných znak na html entity Položek: <?php echo stripslashes(htmlspecialchars($kosik>getpocet()));?><br> Cena: <?php echo stripslashes(htmlspecialchars($kosik>getcena()));?>, Kč Ukázka kódu 1: Užití funkcí stripslashes() a htmlspecialchars() ve výpisu informací košíku 29

30 Bezpečnost XSRF útok je založen na neočekávaném požadavku uživatele. Tento požadavek však není legitimní. Některé stránky se dají často lehce odhadnout jako i v našem případě admin.php. Ochrana proti přítupu někoho neautorizovaného je znázorněna v ukázce kódu 2. Další ochranou je, že všechny důležitá data jsou přenášena pomocí metody post. Vyjímku tvoří jen informace přenášené o aktuální stránce ve výpise zboží a při vyhledávání. if (isset($uzivatel)) { if ($uzivatel>getrole() > 1) { /*administrační stránka*/ }} Ukázka kódu 2: Zabezpečení proti vstupu do administrační části Dalším typem útoku je nahrání škodlivého kódu na server. V tom případě by na straně serveru mohl škodlivý kód způsobit velké škody. Řešením je kontrolovat upload souboru od typu po velikost souboru (viz ukázka kódu 3). V našem eshopu je toto ošetřeno také tím, že nahrát obrázek může pouze admin. $current_image=$_files['image']['name']; $typ = substr(strrchr($current_image, '.'), 1); if (!(($typ == "jpg") ($typ == "png"))) {} if($typ=="jpg"){$im=imagecreatefromjpeg($_files['image']['tmp_name']);} if($typ=="png"){$im=imagecreatefrompng($_files['image']['tmp_name']);} if(imagesx($im)>180 imagesy($im)>70){ /*ošetření*/} Ukázka kódu 3: Zabezpečení nahrávaného souboru Ochrana hesla je jednou z nejdůležitějších věcí. Ukládat heslo jako čistý text je velká chyba. Sice je jednoduché zjistit heslo uživateli při zapomenutí a poslat mu ho, ale přinejmenším heslo uživatele bude znát administrátor a vývojář aplikace. Jedná se tedy o bezpečnostní riziko. Správnou možností je tedy z hesla vytvořit pouze hash a ten uložit. Existují funkce, které tyto hashe vytváří. V této aplikaci jsem zvolil funkci sha1(), která vždy vrací 40 znaků. Z tohoto hashe se poté původní řetězec nedá zjistit. 4.4 Implementace spojení s databází Spojení aplikace a databáze je velmi důležité. Jak bylo řečeno v kapitole 2.2 PHP dobře podporuje propojení s MySQL. Důležitým aspektem je také, aby aplikace mohla být rozšířitelná např. při přechodu z MySQL na Oracle. Proto byly vytvořeny třídy DB a DBConnection, které implementují toto spojení pomocí MySQL API. Postačila by i jedna třída, ale zde byly zvoleny 30

31 Komunikace mezi stránkami dvě, aby měly vyšší cohesion (účelovost). Jde o to, aby třídy nedělali moc odlišných věcí. Třída DBConnection se stará o připojení k databázi, výběr databáze, příkaz query, zavření spojení. Na ní je závislá třída DB. Ta obsahuje již implementace funkcí select, selectlimit, insert, update, delete, fetch_array, free_result, getid. Pro prvních pět funkcí jsou potřebné údaje předány v parametru. Při přechodu např. na Oracle by tedy stačilo vyměnit pouze tyto dvě třídy. V celé aplikaci se tedy vytváří objekt DB, když je potřeba spojení s databází. Jedná se především o header.php, všechny stránky Controllerxxx.php. 4.5 Komunikace mezi stránkami K udržení stavu aplikace můžeme v PHP použít 4 možnosti: skrytá pole, obohacování odkazů, cookies a sessions. Skrytá pole jsou použita u některých formulářů Profilů jako např. ProfilObjednavek.php, když jsou potřeba další údaje pro Controllerxxx.php, které ve formuláři nejsou. V případě našich objednávek se jedná o IDU. IDU je unikátní ID uživatele, podle kterého si Controller najde správného uživatele v databázi, který objednávku vytvořil. Obohacování odkazů již není nejlepší možnost předání proměnné. Proměnné jsou totiž vidět v adrese stránky. Tento typ přenášení proměnných se většinou používá pro filtrování dotazů a věcí, které nemohou ohrozit bezpečnost aplikace. Výsledné proměnné se poté nachází v poli $_GET[ ]. V eshopu je tato technika použita jen pro vyhledávání, filtrování zboží podle kategorií a stránkování. Důvod je jednoduchý, nejedná se o nebezpečná data. Veškeré formuláře v eshopu používají metodu post, kvůli bezpečnosti. Cookies je technologie, která je založena na tom, že server ukládá informace přímo na klientovi. Využít se dají např. na počitadlo návštěv, ale je zde hrozba toho, že kdokoli si vypůjčí Váš počítač, tak tyto informace vidí a může je i použít. Cookies na klientovi totiž nejsou nijak chráněné. Tato varianta předávání proměnných v eshopu nebyla použita. Pro udržování stavu aplikace je velmi vhodná poslední varianta a to pomocí sessions. Jedná se o kombinaci cookies a lokální databáze. Přístup k těmto proměnným je poté přes pole $_SESSION[ ]. Nejprve server přidělí session identifikátor (PHPSESSID) a vyhradí si v databázi místo pro tyto session proměnné. Výhodou oproti jiným metodám je, že se posílá pouze tento identifikátor session (viz obr. 19). 31

32 Komunikace mezi stránkami Obr. 19: Sessions v PHP (převzato z lit. 1) V navrhovaném eshopu jsou sessions použity na přenášení nejen proměnných jako řetězce $_SESSION['upozorneni']. Tato proměnná slouží k přenášení řetězců jako špatně vyplněný formulář, nepovolený přístup, objednávka přijata apod. Pomocí sessions se dají také přenášet celé objekty. Rozdíl oproti proměnným je, že se objekt musí serializovat před uložením do session. A když tento objekt chcete použít musí se deserializovat. V eshopu jsou takto přenášeny nejčastěji objekty košik a uživatel. 4.6 Implementace usecase Zobrazení, přidávání a rozesílání aktualit Novinky může uživatel vidět na hlavní stránce index.php (viz obr. 20). Jedná se o klasický výpis z tabulky Novinky (viz ukázka kódu 4). Obr. 20: Novinky 32

33 Zobrazení, přidávání a rozesílání aktualit echo '<div class="novinky">'; $co = "*"; $odkud = "Novinky"; $podminka = '0=0'; $db>select($co, $odkud, $podminka); echo '<div class="shadow">novinky<hr></div>'; if ($db>pocet_radku() == 0) { echo '<h2>momentálně neexistují žádné novinky.</h2>'; } else { while ($row = $db>fetch_array()) { echo '<div class="novinkynadpisy">'. stripslashes($row['predmet']). ' [' stripslashes($row['datum']).. ']</div> '. stripslashes($row['obsah']).''; }$db>free_result();}echo '</div>'; Ukázka kódu 4: Výpis novinek Novinky může vkládat pouze administrátor. Každá novinka se poté objeví nejen na hlavní stránce, ale také se rozešle jako všem uživatelum eshopu. Administrátor se dostane na tuto funkčnost přes odkaz Správa serveru. Tento use case je implementován přes admin.php, kde admin napíše aktualitu, předmět a formulář odešle (viz obr. 21). Data se odešlou na ControllerNovinky.php. Tam se Novinka uloží a odešle všem uživatelům jako mail (viz ukázka kódu 5). V této ukázce je použit příkaz header("location: ". $_SESSION['ref']), tato funkce přesměruje stránku jinam. V našem případě a to i v případě všech funkcí košíku, jak bude vidět v dalších kapitolách, přesměruje na stránku předešlou. V proměnné $_SESSION['ref'] je uložena adresa předchozí stránky. Uložení se provádí při každé návštěvě stránky, kdy v header.php je vytvořen objekt URL a zavolána metoda selfurl(). Ta uloží adresu do session. 33

34 Zobrazení, přidávání a rozesílání aktualit Obr. 21: Administrační část novinek $co = "*"; $odkud = "Uzivatel"; $podminka = "0=0"; $db>select($co, $odkud, $podminka); while($row = $db>fetch_array()) { mail($row[' '], $_POST['predmet'], $_POST['novinky']);} $db>free_result(); $datum = date('ymd H:i:s'); $kam = "Novinky"; $co = "predmet, obsah, datum"; $hodnoty = '"'.$_POST['predmet'].'","'.$_POST['novinky'].'","'.$datum. '"' ; $db>insert($kam,$co,$hodnoty); header("location: ". $_SESSION['ref']); exit(); Ukázka kódu 5: Uložení a rozesílání novinek Uživatelské účty Funkce s uživatelskými účty zahrnuje registraci, přihlášení, odhlášení, změnu vlastních údajů a smazání účtu. Admin poté může ještě měnit ostatní účty (kromě hesel) a mazat je. Registraci nového účtu je možné pod odkazem Registrace na hlavní stránce. Ten nás odkáže na profiluzivatele.php. Po vyplnění a odeslání formuláře na controlleruzivatele.php je formulář nejprve zkontrolován pomocí javascriptové kontroly a poté ještě na serverové části. Jak již bylo zmíněno v kapitole 4.2 je to kvůli tomu, že javascript lze v prohlížeči vypnout. Controller účet vytvoří, přihlásí uživatele a pošle na uživatele zprávu o vytvoření účtu. 34

35 Uživatelské účty Přihlášení je realizováno podobně. Formulář se zobrazuje pod odkazem Přihlásit. Vstupní údaje jsou zkontrolovány jak na klientské straně tak na straně serveru. To znamená, že uživatel neposílá prázdná pole. Kontrola hesla by vyžadovala spojení s databází. Na straně serveru kontrola probíhá v controlleruzivatele.php. Controllery poznají co mají udělat podle hodnoty submit tlačítka v tomto případě value= Přihlásit. Controller porovná údaje (u hesla si převede zadané heslo na hash a porovná s hashem v databázi) a buď přihlásí uživatele nebo ne. Vždy vrací nějaké upozornění v session proměnné pro uživatele co se stalo. Odhlásit se uživatel může pomocí tlačítka Odhlásit. Přenese nás na stránku controlleruzivatele.php. Zde controller smaže obsah session, zničí je a přesměruje na hlavní stránku (viz ukázka kódu 6). Odlášený uživatel totiž nepotřebuje objekt košíku, který je uložen v session, takže je vše v pořádku. session_unset(); session_destroy(); header('location: index1.php'); exit(); break; Ukázka kódu 6: Odhlášení uživatele Při změně údajů je potřeba klinout na odkaz Profil. Znova se ocitneme na stránce profiluzivatele.php, ale jsme již přihlášeni, takže textboxy jsou vyplněny údaji ze session objektu uživatele kromě hesla. Heslo je totiž stejně zahashováno a zpětná cesta neexisuje. Pro úpravu těchto údajů je povinné vyplnit staré heslo. Toto je bezpečnostní opatření proti tomu, kdyby někdo odešel od počítače a někdo k němu přišel a chtěl měnit údaje. V tomto formuláři je nejen možnost úpravy údajů, ale také je zde tlačítko na smazání účtu. Zde javascript vždy zobrazí kontrolní hlášku, jestli se náhodou uživatel nepřeklikl (viz obr 22). Obr. 22: Javascriptové upozonění před smazáním účtu 35

36 Uživatelské účty Administrátor navíc může měnit nejen vlastní účet, ale hlavně může měnit roli uživatelů. Avšak nemůže měnit heslo uživatelů. Změna údajů uživatele se nachází na odkazu Správa serveru, kde na admin.php v sekci Správa uživatelů vybere uživatele, kterého bude měnit. Tato část se musí kontrolovat, jestli je uživatel přihlášen a jestli má roli adminitrátora Vyhledávání a zobrazování zboží Každý uživatel má možnost nalézt zboží nejen podle kategorie v levém menu každé stránky (viz obr. 14), ale také podle zadaného názvu nebo části textu v popisu zboží do textboxu s tlačítkem vyhledat (viz obr. 23). Výpis kategorií a vyhledávací textbox se nachází v hlavičce (header.php) každé stránky php, které uživatel vidí. Obr. 23: Vyhledávací textbox Při výběru kategorie z levého menu eshop uživatele odkáže na stránku view_kategorie.php, kde se zobrazí zboží z této kategorie. Protože může být v jedné kategorii hodně zboží, je zde naimplementováno stránkování v rozsahu deseti zboží (viz obr. 24). Proměnnou page si předáváme pomocí obohacování odkazů. Nejedná se o citlivou informaci, takže to neoslabuje bezpečnost aplikace. Obr. 24: Stránkování Vyhledávání zboží je naprogramováno tak, že při zadání textu do vyhledávacího textboxu je uživatel přesměrován do search.php, kde je vstup ošetřen pomocí funkce mysql_real_escape_string() a použita metoda select třídy DB k dotazu na databázi a výsledek je vypsán uživateli. Dotaz na databázi vypadá jako ukázka kódu 7. Při kliknutí na odkaz na zboží je přenesen na stránku view_zbozi.php, která zboží zobrazí. 36

37 Vyhledávání a zobrazování zboží $hledaneslovo = mysql_real_escape_string($_get['keywords']); $co = "*"; $odkud = "Zbozi"; $podminka = 'nazev LIKE "%'. $hledaneslovo. '%" OR popis LIKE "%'. $hledaneslovo. '%"'; $db>select($co, $odkud, $podminka); Ukázka kódu 7: Dotaz na vyhledání zboží Podle tohoto dotazu by se mohlo zdát, že asymptotická složitost je lineární. Avšak sloupce název a popis v databázi jsou označeny jako index (viz obr 25). Index je pomocná datová struktura, která urychluje hledání dat v tomto sloupci. Většinou se používá datová struktura halda, takže asymptotická složitost je logaritmická. Přirozeně v databázích jsou takto uloženy primární klíče, protože podle nich se většinou dotazujeme. Je ale pravdou, že toto uspořádání v databázi obecně zpomaluje operace insert, update a delete. Naproti tomu je výhodou, že engine InnoDB podporuje cizí klíče. Existovala zde ještě jedna možnost a to použít fulltextové vyhledávání. Bohužel engine InnoDB toto nepodporuje. Pro fulltextové vyhledávání by se musel použít engine MyISAM. Fulltextové vyhledávání je více optimalizované než běžné, které jsme použili v ukázce kódu 7, ale poté bychom neměli cizí klíče (MyISAM je nepodporuje) a museli bychom při smazání kategorie ošetřit mazání všech zboží ručně, které v této kategorii byly. Tato varianta by byla však pracnější a náročnější. Obr. 25: Důležité sloupce označny jako index Funkce košíku Všechny funkce košíku u eshopu jsou velmi důležité. Mezi tyto funkce patří: přidání zboží do košíku, odstranění zboží z košíku, změnu počtu zboží, vyprázdnit celý košík, odeslat objednávku i s vytvořením faktury. 37

38 Funkce košíku Přidání zboží do košíku je možné pomocí tlačítka Přidat do košíku u každého zboží v dané kategorii. Každé zboží je formulář, při kliknutí na tlačítko Přidat do košíku se tento formulář odešle na controllerkosiku.php i s informacemi o zboží. Controller nejprve zkontroluje, jestli vůbec objekt košíku v session existuje a deserealizuje ho. Pokud neexisuje, tak ho vytvoří. Poté vytvoří objekt zboží a zkontroluje, zda již zboží není v košíku. V objektu košík je pole $seznamzbozi, které uchovává objekty zboží. Pokud se zboží v poli $seznamzbozi nachází (porovnávají se ID objektů), tak se jen přičte počet zboží ke stávajícímu počtu. Pokud se objekt v poli nenachází tak se do něj uloží. Objekt košíku se uloží do session a také se do session uloží zpráva 'Zboží přidáno do košíku!', aby byl uživatel informován co se děje. Poté pomocí funkce header se přesměrujeme na poslední stránku, která byla uložena v session. Ve výsledku uživatel přidá zboží a ani neví, že navštívil stránku controllerkosiku.php. Pro další funce je potřeba kliknout na odkaz košík. Ten nás přesměruje na stránku profilkosiku.php. Zde jsou vypsány všechny položky košíku (viz obr. 26). V implementaci to znamená, že každé vypsané zboží je formulář, které odesílá informace o zboží metodou POST na controllerkosiku.php. Také se v session přenáší objekty uživatel a košík. Jak je na tomto obr. 26 vidět, košík si explicitně uchovává počet položek a celkovou cenu, kterou může uživatel vidět neustále v horní části stránky. Všechny funkce jsou založeny na komunikaci s controllerkosiku.php, který komunikuje s databází a přesměruje uživatele zpět. Obr. 26: Košík eshopu a jeho funkce 38

39 Funkce košíku Tlačítko Odebrat u daného zboží v košíku odešle formulář na controllerkosiku.php, kde controller najde objekt zboží podle ID v poli $seznamzbozi v objektu košíku a smaže ho. Funkce tlačítka Změnit u daného zboží je velmi podobná. Controller najde zboží v poli a změní počet. Dále také opraví celkovou cenu a celkový počet zboží v košíku. Tlačítko Vyprázdnit celý košík je implementováno v controlleru tak, že přepíše celý objekt košíku na null a uloží ho do session, viz ukázka kódu 8. $_SESSION['kosik'] = null; $_SESSION['upozorneni'] = 'Košík byl vyprázdněn!'; header("location: ". $_SESSION['ref']); exit(); Ukázka kódu 8: Vyprázdnění celého košíku Objednání zboží v košíku je implementováno v controlleru tak, že nejprve vytvoří záznam v tabulce objednávky, který odkazuje cizím klíčem na záznam uživatele v databázi. Tento záznam objednávky je poté spojen se záznamem v tabulce ZboziHistorie přes tabulku Obsahuje. Stav u objednávky je nastaven na nevyřízená. Controller nyní ještě vytvoří fakturu instanční metodou vytvorfakturu() objektu košíku. Třída Košík pro vytváření faktury v pdf formátu využívá knihovnu fpdf. Metoda vytvorfakturu() byla rozdělena na několik částí. První část vytvoří objekt FPDF, vytvoří stránku a nastaví font, který byl překonvertován na správné kódování a to windows cp1250. Zde je dobré podotknout, že veškerý obsah stránek, tabulky v databázi i jejich sloupce jsou kódovány v utf8. Problém s touto knihovnou je, že nepodporuje utf8 a pro češtinu si musíte překonvertovat font do správného kódování. Řešení v navrženém eshopu tedy je, aby všude fungovala čeština, že jen ta část stránky generující fakturu je v kódování windows cp1250. Druhá část obsahuje hlavičku faktury, třetí tělo a čtvrtá zavře dokument a uloží fakturu do souboru typu pdf s názvem jeho id. Ukázka kódu 9 ukazuje nejdůležitější příkazy a to pro vepsání textu a nakreslení rámečku do pdf. $pdf>setxy(450, $x); $pdf>write(24,'faktura '.$IDO.'/'.date("Y")); $zpusobrameceky = 600; $pdf>setxy($ramecek, $zpusobrameceky); $pdf>cell(270,80,'',1,1,'c'); Ukázka kódu 9: Ukázky práce s knihovnou fpdf 39

40 Funkce košíku Na závěr controller odešle administrátorům o nové objednávce a uživateli o tom, že objednávka byla přijata Správa zboží a kategorií Správu zboží a kategorií může dělat pouze administrátor. Kategorie může přidávat, přejmenovávat a mazat. U mazání celé kategorie smaže i všechno zboží v té kategorii. Zboží může přidat, měnit údaje i nahrát jiný obrázek a mazat. Tyto use cases se nachází pod odkazem Správa serveru. U kategorií je jednoduší postup než u zboží. Funkce jsou přímo zde a nemusíme tedy být nikam přesměrováni (viz obr 27). Zde přímo uživatel zadá název nové kategorie pro její přidání a odešle pomocí tlačítka Přidat novou kategorii. Název kategorie je poslán na controllerkategorii.php, který vytvoří novou kategorii v databázi. Pro přejmenování kategorie uživatel vybere existující kategorii, zadá nový název a odešle pomocí tlačítka Přejmenovat kategorii. Pro smazání stačí jen vybrat existující kategorii a smazat pomocí tlačítka Smazat kategorii. K zpracování těchto dvou akcí slouží znovu controllerkategorii.php. Obr. 27: Správa kategorií U zboží je situace trochu komplikovanější. U zboží je více položek, které můžeme měnit. Proto v této části jsou dvě možnosti: přidat nové zboží a upravit (viz obr 28). Při změně musí uživatel vybrat zboží z rolovací lišty, které bude upravovat. 40

41 Správa zboží a kategorií Obr. 28: Správa zboží Obě možnosti uživatele přesměrujou na profilzbozi.php (viz obr. 29). Když upravujeme zboží tak jsou hodnoty přednastaveny. Při vytváření nového zboží jsou prázdné. Zde je navíc možnost smazání existujícího zboží pomocí tlačítka Smazat zboží, při vytváření zboží zde toto tlačítko není. Obr. 29: Úprava zboží Zde je velmi důležité ošetřit vstup nahrávání obrázku. Sice je pravda, že nahrávat může jen administátor, u kterého se nepředpokládá útok na vlastní server, ale přesto není zaručena 100% bezpečnost toho vstupu. Existují dvě řešení tohoto problému. Buď uložit obrázek na server do připravené složky a do databáze si uloží jeho název. Nebo druhou možností je uložit 41

42 Správa zboží a kategorií obrázek do databáze do sloupce typu blob jako binární data. Výhodou prvního řešení je menší režie databáze a také je načítání souboru rychlejší. Proto jsem v této práci zvolil první možnost. Ošetření takového nahrávání obsahuje kontrolu nejprve typu souboru, která pustí jen obrázky typu png a jpg. Obrázek typu gif schválně nechceme nahrávat, aby eshop působil seriózněji. Gif animace by příliš odváděly pozornost zákazníka od výběru zboží. Další věc, která se kontroluje je velikost souboru a jeho rozměry. Poté obrázek zkopíruje do adresáře img/zboží s unikátním názvem, vytvořeného podle času a datumu. Tento název se uloží do databáze ke zboží Správa objednávek Spravovat objednávky může pouze administrátor. Nachází se pod odkazem Správa serveru. Na obr. 30 je vidět, že jsou zde dva výpisy: Vypsat všechny objednávky a vypsat nevyřízené objednávky. Obr. 30: Úprava zboží Obě dvě tlačítka tlačítka stránku přesměrují na profilobjednavek.php. V obou případech je výsledkem výpis objednávek (viz obr. 31). V prvním případě všech objednávek a v druhém jen nevyřízených. Obr. 31: Výpis objednávek Pro prohlédnutí objednávky ji stačí vybrat kliknutím na tlačítko Prohlédnout. To nás přenese na stránku profilobjednavky.php (viz obr. 32). 42

43 Správa objednávek Obr. 32: Ukázka výpisu objednávky Tlačítko Smazat smaže danou objednávku z databáze a tlačítko Nastavit jako vyřízená nastaví stav objednávky na vyřízenou. Tyto akce jsou provedeny přes controllerobjednavek.php. Poslední tlačítko Faktura otevře fakturu ve formátu pdf pro danou objednávku, která je znázorněna na obr. 33. Obr. 33: Ukázka faktury 43

44 Použité javascripty 4.7 Použité javascripty Kromě všech javascriptových ošetření formulářů, byl vytvořen ještě jeden skript. Jedná se o nadpis.js. Při najetí kurzoru na logo firmy změní obrázek ve formátu png za animovaný obrázek ve formátu gif. A při přejetí kurzoru pryč zase vrátí původní obrázek, viz ukázka kódu 10. Tento efekt zviditelní funkcionalitu loga jako odkaz na hlavní stránku. Také upoutá pozornost uživatele, ale efekt zde není napořád, aby uživatele nerušila (např. při výběru zboží). function mouseoverimage1() { document.getelementbyid("nadpisimg").src = "img/nadpisotacejici.gif"; } function mouseoutimage1() { document.getelementbyid("nadpisimg").src = "img/nadpis.png"; } <a href="index1.php" title="eshop Eurocontracts"> <img id="nadpisimg" src="img/nadpis.png" alt="eshop Eurocontracts" onmouseover="mouseoverimage1()" onmouseout="mouseoutimage1()"></a> Ukázka kódu 10: Javascriptový efekt loga 4.8 Stránkování Stránkování zde můžeme implementovat dvěma způsoby. První možnost by byla uložit si všechny záznamy z databáze a na straně serveru je poté filtrovat. Nevýhoda tohoto řešení je patrná, u většího počtu záznamů zatěžuje databázi. Druhá možnost je filtrovat výběr přímo u dotazu na databázi. V této aplikaci byla použita druhá možnost. Stránkování je implementováno v rozsahu 10 zobrazených položek. Nejprve je potřeba zjistit, jestli nějaká stránka je nastavená (viz ukázka kódu 11). ($page1)*10 znamená, že potřebujeme na první stránce začínat zbožím s indexem 0, na druhé stránce indexem 10. Index zde představuje index v poli zboží v objektu košík. if (isset($_get["page"])) { $page = $_GET["page"]; } else { $page=1; } $start_from = ($page1) *10; Ukázka kódu 11: Zjištění stránky pro výpis Poté se musí upravit dotazový příkaz (viz ukázka kódu 12). Je zde vidět, že vybíráme přesný rozsah z databáze. Výpis je stejný jako na jiných stránkach, změna přichází na dolní části stránky, kde je výpis stránek (viz ukázka kódu 13). 44

45 Stránkování $co = "*"; $odkud = "Zbozi"; $podminka = 'IDKategorie = "'. $IDKategorie. '"'; $limit = $start_from.', 10 '; $db>selectlimit($co, $odkud, $podminka, $limit); Ukázka kódu 12: Dotaz na databázi pro data již v určeném rozsahu pomocí klíč. slova limit $co = "COUNT(IDZ)"; $odkud = "Zbozi"; $podminka = 'IDKategorie = "'. $IDKategorie. '"'; $db>select($co, $odkud, $podminka); $row = $db>fetch_array(); $pocetudaju = $row[0]; $pocetstranek = ceil($pocetudaju / 10); echo '<div class="center">'; for ($i=1; $i<=$pocetstranek; $i++) { if($i==$page){ echo "<span class='vetsi'> ".$i."</span> "; }else{ echo "<a class='stredoveodkazy' href='view_kategorie.php?idkat=". $IDKategorie."&kat=".$Kategorie."&page=".$i."'>".$i."</a> "; } } echo '</div>'; Ukázka kódu 13: Výpis stránek 4.9 Validace html a css Aplikace této práce prošla validací jak html validátoru tak css validátoru (viz obr. 34). Obr. 34: Výsledky validátorů html a css 45

46 Validace html a css Validátor css našel pouze některé varování a to se týkalo použitých css3, které zatím tento validátor ne zcela podporuje (viz obr. 35). Stránky byly spouštěny pod různými prohlížeči a grafický výsledek byl vždy velmi podobný. Jediná odlišnost je stín pod prostředním prvkem stránky. Tento css3 styl podporuje zatím jen prohlížeč firefox. Obr. 35: Varování ohledně použitých css3 stylů 46

Rezervační systém Tvorba WWW stránek

Rezervační systém Tvorba WWW stránek 2012 Rezervační systém Tvorba WWW stránek Vytvoření rezervačního systému pro rezervaci motokár,ubytování a atrakcí Marek Svoboda Motokáry Motobydlo 30.12.2012 Obsah 1.Základní charakteristika... 3 a) Téma

Více

8.2 Používání a tvorba databází

8.2 Používání a tvorba databází 8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam

Více

PROFI TDi s.r.o. 696 37, Želetice 40 www.profi-tdi.cz info@profi-tdi.cz. Návod k používání systému OTDI.CZ

PROFI TDi s.r.o. 696 37, Želetice 40 www.profi-tdi.cz info@profi-tdi.cz. Návod k používání systému OTDI.CZ Návod k používání systému OTDI.CZ Vážený kliente. Děkujeme za projevený zájem o náš on-line systém evidence kontrol, určený speciálně pro účely dozorů staveb. Systém OTDI.CZ nabízí svým uživatelům zejména:

Více

TECHNICKÁ DOKUMENTACE SOCIÁLNÍ SÍŤ MRSHARE. David Malát, Adam Novák, David Vurbs, Dominik Walta. SPŠ Na Proseku 2012/13. Pod velením Davida Vurbse

TECHNICKÁ DOKUMENTACE SOCIÁLNÍ SÍŤ MRSHARE. David Malát, Adam Novák, David Vurbs, Dominik Walta. SPŠ Na Proseku 2012/13. Pod velením Davida Vurbse TECHNICKÁ DOKUMENTACE SOCIÁLNÍ SÍŤ MRSHARE David Malát, Adam Novák, David Vurbs, Dominik Walta SPŠ Na Proseku 2012/13 Pod velením Davida Vurbse Zadání práce Adam Novák-Vytvořit zeď a její funkce a technickou

Více

Uživatelská dokumentace

Uživatelská dokumentace Uživatelská dokumentace Verze 14-06 2010 Stahování DTMM (v rámci služby Geodata Distribution) OBSAH OBSAH...2 1. O MAPOVÉM SERVERU...3 2. NASTAVENÍ PROSTŘEDÍ...3 2.1 Hardwarové požadavky...3 2.2 Softwarové

Více

Redakční systém Joomla. Prokop Zelený

Redakční systém Joomla. Prokop Zelený Redakční systém Joomla Prokop Zelený 1 Co jsou to red. systémy? Redakční systémy (anglicky Content Management System - CMS) jsou webové aplikace používané pro snadnou správu obsahu stránek. Hlavním cílem

Více

Internetový obchod Mironet

Internetový obchod Mironet České vysoké učení technické v Praze Fakulta elektrotechnická Internetový obchod Mironet Semestrální práce A2 Testování uživatelských rozhraní A4B39TUR Pavel Štíbal Stibapa1@fel.cvut.cz 2013/2014 Otevřená

Více

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Webové aplikace Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Harmonogram Dopolední blok 9:00 12:30 Ing. Dostal Úvod, XHTML + CSS Ing. Brada,

Více

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE WEBOWÉ STRÁNKY TŘÍD KAMIL POPELKA ZÁVĚREČNÁ MATURITNÍ PRÁCE BRNO 2011 Prohlášení Prohlašuji, že maturitní práce je mým původním autorským dílem, které

Více

Personální evidence zaměstnanců

Personální evidence zaměstnanců Mendelova univerzita v Brně Provozně ekonomická fakulta Personální evidence zaměstnanců Uživatelská dokumentace Bc. Petr Koucký Bc. Lukáš Maňas Bc. Anna Marková Brno 2015 1 Popis funkcionality Námi řešená

Více

MBI - technologická realizace modelu

MBI - technologická realizace modelu MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,

Více

POKYNY K REGISTRACI PROFILU ZADAVATELE

POKYNY K REGISTRACI PROFILU ZADAVATELE POKYNY K REGISTRACI PROFILU ZADAVATELE Stav ke dni 4. 12. 2012 Obsah: 1 Úvod... 3 1.1 Podmínky provozu... 3 1.2 Pokyny k užívání dokumentu... 3 2 Registrace profilu zadavatele... 4 2.1 Přihlášení uživatele...

Více

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK Systém WorkWatch je určen pro malé a střední firmy, které se zabývají službami nebo zakázkovou výrobou. Zajistí dokonalý přehled o všech zakázkách a jejich rozpracovanosti.

Více

Individuální projekt z předmětu webových stránek 2012/2013 - Anketa

Individuální projekt z předmětu webových stránek 2012/2013 - Anketa Individuální projekt z předmětu webových stránek 2012/2013 - Anketa Daniel Beznoskov, 2 IT A Skupina 1 Úvod Prohlášení o autorství Prohlašuji, že jsem individuální projekt z předmětu webových stránek na

Více

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4 CRM SYSTÉM KORMORÁN PŘÍRUČKA ADMINISTRÁTORA Obsah 1 Administrace systému 3 1.1 Uživatelské účty.................................. 3 1.2 Přístupová práva................................. 3 1.3 Moduly.......................................

Více

1 Úvod. 2 Registrace a přihlášení. Registrace). Zobrazí se stránka, kde budete mít na výběr ze dvou možností. Můžete vytvořit nové či.

1 Úvod. 2 Registrace a přihlášení. Registrace). Zobrazí se stránka, kde budete mít na výběr ze dvou možností. Můžete vytvořit nové či. 1 Úvod Aplikace XPERA Projects, která je určena pro sběr a řešení požadavků, přináší nový rozměr a efektivity mobilního klienta. Aplikace Xpera Projects pro ios znamená mít řešené případy stále s sebou.

Více

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída: DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP Maturitní projekt Vypracoval: Denis Ptáček Třída: 4B Rok: 2014/2015 Obsah 1. Použité nástroje... 3 1.1 NetBeans

Více

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika Vyšší odborná škola ekonomická a zdravotnická a Střední škola, Boskovice INOVACE PŘEDMĚTŮ ICT MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika Zpracoval: Jaroslav Kotlán srpen 2009s Úvod Modul Programování

Více

Maturitní projekt do IVT Pavel Doleček

Maturitní projekt do IVT Pavel Doleček Maturitní projekt do IVT Pavel Doleček CO FILMBOOK JE Filmbook je uzavřená webová aplikace pro celkovou správu informací a dat souvisejících se sledováním filmů. Primárně je zaměřen na uchovávání a spravování

Více

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě PHP PHP původně znamenalo Personal Home Page a vzniklo v roce 1996, od té doby prošlo velkými změnami a nyní tato zkratka znamená Hypertext Preprocessor. PHP je skriptovací programovací jazyk, určený především

Více

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek Co je to webová aplikace? příklady virtuální obchodní dům intranetový IS podniku vyhledávací služby aplikace jako každá jiná přístupná

Více

Semestrální práce 2 znakový strom

Semestrální práce 2 znakový strom Semestrální práce 2 znakový strom Ondřej Petržilka Datový model BlockFileRecord Bázová abstraktní třída pro záznam ukládaný do blokového souboru RhymeRecord Konkrétní třída záznamu ukládaného do blokového

Více

Administrace webu Postup při práci

Administrace webu Postup při práci Administrace webu Postup při práci Obsah Úvod... 2 Hlavní menu... 3 a. Newslettery... 3 b. Administrátoři... 3 c. Editor stránek... 4 d. Kategorie... 4 e. Novinky... 5 f. Produkty... 5 g. Odhlásit se...

Více

TAOX Konfigurátor potisku seznam funkcí

TAOX Konfigurátor potisku seznam funkcí TAOX Konfigurátor potisku seznam funkcí Úvod Celý systém se dělí na několik částí. A to jak z pohledu uživatele (zákazníka), tak z pohledu administrátora. Konfigurátor aplikace na tvorbu potisku (dělí

Více

Aplikační vrstva. Úvod do Php. Ing. Martin Dostal

Aplikační vrstva. Úvod do Php. Ing. Martin Dostal Aplikační vrstva Úvod do Php Ing. Martin Dostal Co to je PHP? php soubory se nekompilují, interpret je spouští přímo bez překladu php běží na serveru php soubor je.txt soubor obsahující php kód: Zkrácený

Více

Jak se orientovat ve světě ESTOFANu verze 3.0.3?

Jak se orientovat ve světě ESTOFANu verze 3.0.3? Jak se orientovat ve světě ESTOFANu verze 3.0.3? Systém ESTOFAN je určen pro administraci a editaci webových stránek, které jsou provozovány reklamní agenturou PANKREA. 1. Přihlášení Po objednávce a vytvoření

Více

ACTIVATE HERE - FAQ. Zakoupením této položky získáte do 60 minut do požadovaného emailu aktivační klíče k vybranému produktu.

ACTIVATE HERE - FAQ. Zakoupením této položky získáte do 60 minut do požadovaného emailu aktivační klíče k vybranému produktu. ACTIVATE HERE - FAQ Co je to Activate-Here produkt? Zakoupením této položky získáte do 60 minut do požadovaného emailu aktivační klíče k vybranému produktu. Součástí emailu je i odkaz, kde si můžete vybraný

Více

Na vod k nastavenı e-mailu

Na vod k nastavenı e-mailu Na vod k nastavenı e-mailu 1. Návod k nastavení e-mailových schránek na serveru stribrny.net. Do e-mailových schránek lze přistupovat přes webové rozhraní Webmail nebo přes poštovního klienta. Návod popisuje

Více

E-NABÍDKA PARTNER.REDA.CZ

E-NABÍDKA PARTNER.REDA.CZ E-NABÍDKA PARTNER.REDA.CZ Reda e-nabídka představuje mocný nástroj, díky kterému mohou naši registrovaní klienti přímo z prostředí e-shopu partner.reda.cz vytvářet vlastní produktové nabídky pro své zákazníky.

Více

ANOTACE vytvořených/inovovaných materiálů

ANOTACE vytvořených/inovovaných materiálů ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a

Více

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA INFORMAČNÍ SYSTÉMY A DATOVÉ SKLADY Autosalón (semestrální projekt) ZS 2011-2012 Analýza Implementace Číslo skupiny: 2 Členové skupiny: Jmeno,příjmení,login

Více

K práci je možné přistoupit následujícím způsobem. Odkaz na práci se nachází na osobním webu autora práce: http://stpr.cz/.

K práci je možné přistoupit následujícím způsobem. Odkaz na práci se nachází na osobním webu autora práce: http://stpr.cz/. 2. Seznámení K práci je možné přistoupit následujícím způsobem. Odkaz na práci se nachází na osobním webu autora práce: http://stpr.cz/. 2.1. Uživatel (učitel) Uživatelem (učitelem) se myslí osoba, která

Více

Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087

Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087 Databázové a informační systémy Informační systém prodejny nábytku Jakub Kamrla, KAM087 1. část Funkční a nefunkční požadavky 1. K čemu má systém sloužit Jedná se o informační systém pro jednu nejmenovanou

Více

Už ivatelska dokumentace

Už ivatelska dokumentace Už ivatelska dokumentace Aplikace Portál úspěšných projektů je určena k publikování informací o projektech realizovaných za přispění některého z Operačních programů v gesci Ministerstva vnitra České republiky.

Více

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Využití OOP v praxi -- Knihovna PHP -- Interval.cz Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování

Více

Zabezpečení proti SQL injection

Zabezpečení proti SQL injection Zabezpečení proti SQL injection ESO9 intranet a.s. Zpracoval: Tomáš Urych U Mlýna 2305/22, 141 Praha 4 Záběhlice Dne: 19.9.2012 tel.: +420 585 203 370-2 e-mail: info@eso9.cz Revize: Urych Tomáš www.eso9.cz

Více

Webové stránky fotbalového klubu

Webové stránky fotbalového klubu Semestrální práce pro X36WWW Webové stránky fotbalového klubu DOKUMENTACE autor: David Komárek 1. Zadání Naprogramujte informační web fotbalového klubu. V klubu jsou registrována dvě mužstva, A mužstvo

Více

Uživatelský manuál aplikace. Dental MAXweb

Uživatelský manuál aplikace. Dental MAXweb Uživatelský manuál aplikace Dental MAXweb Obsah Obsah... 2 1. Základní operace... 3 1.1. Přihlášení do aplikace... 3 1.2. Odhlášení z aplikace... 3 1.3. Náhled aplikace v jiné úrovni... 3 1.4. Změna barevné

Více

InsideBusiness Payments CEE

InsideBusiness Payments CEE InsideBusiness Payments CEE Referenční příručka k novému vzhledu Přístupová cesta do střední a východní Evropy InsideBusiness Payments CEE Potřebujete pohodlný a bezproblémový přístup k úplné nabídce služeb

Více

Postupy práce se šablonami IS MPP

Postupy práce se šablonami IS MPP Postupy práce se šablonami IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Postupy práce se šablonami IS MPP Modul

Více

NÁVOD K AKTIVACI A POUŽÍVÁNÍ E-MAILOVÉHO ÚČTU V DOMÉNĚ PACR.EU

NÁVOD K AKTIVACI A POUŽÍVÁNÍ E-MAILOVÉHO ÚČTU V DOMÉNĚ PACR.EU NÁVOD K AKTIVACI A POUŽÍVÁNÍ E-MAILOVÉHO ÚČTU V DOMÉNĚ PACR.EU PŘIHLÁŠENÍ K E-MAILOVÉMU ÚČTU Pro přihlášení k účtu je třeba do internetového vyhledávače napsat internetovou adresu http://hotmail.com. Po

Více

Dobrý SHOP Popis produktu a jeho rozšíření

Dobrý SHOP Popis produktu a jeho rozšíření Dobrý SHOP Popis produktu a jeho rozšíření 501M012.N01 11/11/2011 www.dlaex.cz info@dlaex.cz OBSAH 1 Úvod...3 2 Účel produktu...3 3 Vlastnosti produktu...3 3.1 Koncepce...3 3.2 Základní y...3 3.3 Doplňkové

Více

Analýza požadavků. 1. Funkční požadavky - popisují chování, funkce a operace uživatelů, které systém musí podporovat. 1.1 Operace uživatelů

Analýza požadavků. 1. Funkční požadavky - popisují chování, funkce a operace uživatelů, které systém musí podporovat. 1.1 Operace uživatelů Základní pojmy: Systém = webová prezentace + eshop Registrovaný uživatel = zástupce montážní firmy Neregistrovaný uživatel = běžný zákazník eshop Administrátor = správce systému Analýza požadavků 1. Funkční

Více

Nástrojová lišta v editačním poli

Nástrojová lišta v editačním poli Nástrojová lišta v editačním poli Název projektu PŘEJÍT NA konkrétní sekci webu ZOBRAZIT zobrazí a) pracovní verzi webu (tj. nepublikovanou) b) publikovanou verzi webu a) Odstranit odstraní zobrazenou

Více

JEDNODUCHÝ PRŮVODCE STRÁNKAMI www.dedra.cz

JEDNODUCHÝ PRŮVODCE STRÁNKAMI www.dedra.cz JEDNODUCHÝ PRŮVODCE STRÁNKAMI www.dedra.cz Pomocí tohoto jednoduchého průvodce se budete lépe orientovat na našich internetových stánkách a bez problémů využívat výhod nového automatického objednávkového

Více

Uživatelská příručka administrativního rozhraní Vědecké knihovny v Olomouci

Uživatelská příručka administrativního rozhraní Vědecké knihovny v Olomouci Držitel certifikátu jakosti ISO 9001:2001 Uživatelská příručka administrativního rozhraní Vědecké knihovny v Olomouci Stránka 1/44 Obsah 1.Redakční systém...4 1.1. Povolené jazykové mutace...4 5.2.1 Překlad

Více

17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/

17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/ 17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/ Úvod 1 Úvod Nedávno jsem zveřejnil návod na vytvoření návštěvní knihy bez nutnosti použít databázi. To je výhodné tehdy, kdy na serveru

Více

Easycars Aplikace pro správu autobazaru

Easycars Aplikace pro správu autobazaru Easycars Aplikace pro správu autobazaru Obsah 1 Úvod... 2 1.1 Požadavky... 2 2 Přihlášení do systému... 3 2.1 Úvodní stránka... 4 3 Správa nabídek vozů a klienů... 5 3.1 Výpis vozidel... 5 3.1.1 Export

Více

Registr práv a povinností

Registr práv a povinností Registr práv a povinností Doporučené postupy a nastavení internetového prohlížeče pro práci v aplikaci AIS RPP Doporučené postupy a nastavení internetového prohlížeče pro práci v aplikaci AIS RPP v4.0

Více

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Návrh a tvorba WWW stránek 1/14. PHP a databáze Návrh a tvorba WWW stránek 1/14 PHP a databáze nejčastěji MySQL součástí balíčků PHP navíc podporuje standard ODBC PHP nemá žádné šablony pro práci s databází princip práce s databází je stále stejný opakované

Více

Profesis on-line 20.1.2015. Obrázky v prezentaci byly upraveny pro potřeby prezentace.

Profesis on-line 20.1.2015. Obrázky v prezentaci byly upraveny pro potřeby prezentace. Profesis on-line 20.1.2015 Obrázky v prezentaci byly upraveny pro potřeby prezentace. Adresa systému: www.profesis.cz Údaje nutné pro přihlášení: - přihlašovací jméno: sedmimístné číslo autorizace (včetně

Více

Uživatelská příručka

Uživatelská příručka Uživatelská příručka 1 Obsah 1 Obsah... 2 2 Uživatelská příručka... 3 2.1 Správce aplikace... 3 Menu správce aplikace... 4 Správa uživatelských účtů... 4 2.2 Ředitel turnaje... 4 Menu ředitele turnaje...

Více

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita Aktivní webové stránky Úvod: - statické webové stránky: pevně vytvořený kód HTML uložený na serveru, ke kterému se přistupuje obvykle pomocí protokolu HTTP (HTTPS - zabezpečený). Je možno používat i různé

Více

Informační systém webhostingu

Informační systém webhostingu VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA INFORMAČNÍ SYSTÉMY A DATOVÉ SKLADY Informační systém webhostingu semestrální projekt Analýza Číslo skupiny: 4 Členové: Filip Bartman Jakub Vaněk Jan Šrámek

Více

Příručka uživatele HELPDESK GEOVAP

Příručka uživatele HELPDESK GEOVAP HELPDESK GEOVAP verze 1.2 11.11.2008 OBSAH 1 REGISTRACE DO HELPDESK...1 2 PŘIHLÁŠENÍ A ODHLÁŠENÍ...1 3 ZÁKLADNÍ OBRAZOVKA HELPDESK...2 4 PŘEHLED HLÁŠENÍ...2 5 ZALOŽENÍ NOVÉHO HLÁŠENÍ...3 6 ZOBRAZENÍ/EDITACE

Více

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý Uživatelský manuál Aplikace GraphViewer Vytvořil: Viktor Dlouhý Obsah 1. Obecně... 3 2. Co aplikace umí... 3 3. Struktura aplikace... 4 4. Mobilní verze aplikace... 5 5. Vytvoření projektu... 6 6. Části

Více

Internetový obchod ES Pohoda Web Revolution

Internetový obchod ES Pohoda Web Revolution Internetový obchod ES Pohoda Web Revolution Uživatelský manuál propojení na ES Pohoda Verze 1.0 Web Revolution s.r.o. 2010 Internetový obchod ES Pohoda Uživatelský manuál na propojení na ES Pohoda Přehled

Více

NÁVOD NA OBSLUHU INTERNETOVÉ PREZENTACE. Ataxo Czech s.r.o.

NÁVOD NA OBSLUHU INTERNETOVÉ PREZENTACE. Ataxo Czech s.r.o. NÁVOD NA OBSLUHU INTERNETOVÉ PREZENTACE Ataxo Czech s.r.o. ÚVOD Internetové stránky vytvořené společností Ataxo v rámci produktu Mini web můžete jednoduše a rychle upravovat prostřednictvím on-line administrace.

Více

Zpracoval Datum Verze Popis změn

Zpracoval Datum Verze Popis změn Uživatelský manuál Zpracoval Datum Verze Popis změn Grant Avakjan 29.09.2010 1.0 Vytvoření manuálu Grant Avakjan 14.10.2010 2.0 Aktualizace dokumentu Aleš Danda 2. 8. 2011 2.1 Aktualizace dokumentu popis

Více

Elektronické výpisy v BankKlientovi

Elektronické výpisy v BankKlientovi Elektronické výpisy v BankKlientovi Nastavení oprávnění pro změnu parametru účtu Nově Vám v BankKlientu přibylo oprávnění pro změnu parametru účtu. Toto oprávnění Vám dává možnost měnit nastavení účtu

Více

Tour de ABB 2013 Průvodce online aplikací http://www.tourdeabb.cz

Tour de ABB 2013 Průvodce online aplikací http://www.tourdeabb.cz Tour de ABB 2013 Průvodce online aplikací http://www.tourdeabb.cz 1. V online systému došlo v tomto roce k několika změnám, proto není možno použít uživatelský účet z roku loňského. Prvním krokem je tedy,

Více

Manuál pro žadatele OBSAH

Manuál pro žadatele OBSAH Manuál pro žadatele OBSAH 1. Úvod... 2 2. Registrace žadatele do systému... 3 3. Přihlášení... 5 4. Změna hesla... 6 5. Obnova zapomenutého hesla... 7 6. Vyplňování formuláře žádosti o dotaci... 8 6.1.

Více

Informační systém pro nemocnici

Informační systém pro nemocnici Informační systém pro nemocnici Tento systém bude usnadňovat nemocnici správu zaměstnanců a pacientů, evidenci zákroků, diagnózy jednotlivých pacientů a jejich závažnost. Umožní uživatelům jednoduše nalézt

Více

Roční periodická zpráva projektu

Roční periodická zpráva projektu WAK-1F44C-2005-2 WAK System Název projektu: Automatizovaná výměna dat mezi informačními systémy krizového řízení v dopravě s jednotným univerzálním a implementovaným rozhraním založeným na standardu webových

Více

PRACUJEME S TSRM. Modul Samoobsluha

PRACUJEME S TSRM. Modul Samoobsluha PRACUJEME S TSRM Modul Samoobsluha V této kapitole Tato kapitola obsahuje následující témata: Téma Na straně Přehled kapitoly 6-1 Užití modulu Samoobsluha 6-2 Přihlášení k systému 6-3 Hlavní nabídka TSRM

Více

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13 Obsah Úvodem 9 1. Úvod do Ajaxu 11 Jak Ajax funguje? 13 Popis 13 Ukázky 13 Jaké jsou možnosti tvorby interaktivních webových aplikací? 15 Co je třeba znát? 16 Jak fungují technologie Ajaxu 16 Jak funguje

Více

Dokumentace pro správu zlínských DUM

Dokumentace pro správu zlínských DUM Dokumentace pro správu zlínských DUM Obsah 1 Správa administrátorů... 3 1.1 Přidávání administrátorů... 3 1.2 Nastavování práv administrátorů... 3 1.3 Upravení detailů administrátora... 5 1.4 Aktivování,

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

Webová aplikace Znalostní testy online UŽIVATELSKÁ PŘÍRUČKA

Webová aplikace Znalostní testy online UŽIVATELSKÁ PŘÍRUČKA Webová aplikace Znalostní testy online UŽIVATELSKÁ PŘÍRUČKA 2005 Lukáš Trombik OBSAH ÚVOD... 1 SPUŠTĚNÍ... 1 POPIS OVLÁDÁNÍ INFORMAČNÍHO SYSTÉMU... 1 POPIS KLIENTSKÉ ČÁSTI... 1 POPIS ADMINISTRÁTORSKÉ ČÁSTI...

Více

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá

Více

http://www.zlinskedumy.cz

http://www.zlinskedumy.cz Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Autor Ročník 1 Obor CZ.1.07/1.5.00/34.0514 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Operační systém a textový editor,

Více

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz

Více

M E T O D I K A W I K I

M E T O D I K A W I K I M E T O D I K A W I K I STŘEDNÍ ŠKOLY INFORMATIKY A SPOJŮ, BRNO, ČICHNOVA 23 NÁPOVĚDA OBSAH Webové stránky Střední školy informatiky a spojů, Brno, Čichnova 23... 3 Moje stránka... 6 Přihlášení... 6 Po

Více

FFUK Uživatelský manuál pro administraci webu Obsah

FFUK Uživatelský manuál pro administraci webu Obsah FFUK Uživatelský manuál pro administraci webu Obsah FFUK Uživatelský manuál pro administraci webu... 1 1 Úvod... 2 2 Po přihlášení... 2 3 Základní nastavení webu... 2 4 Menu... 2 5 Bloky... 5 6 Správa

Více

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5 CRM SYSTÉM KORMORÁN UŽIVATELSKÁ PŘÍRUČKA Obsah 1 Základní práce se systémem 3 1.1 Práce se záznamy................................. 3 1.2 Stránka Dnes.................................... 4 1.3 Kalendář......................................

Více

Šifrování Autentizace Bezpečnostní slabiny. Bezpečnost. Lenka Kosková Třísková, NTI TUL. 22. března 2013

Šifrování Autentizace Bezpečnostní slabiny. Bezpečnost. Lenka Kosková Třísková, NTI TUL. 22. března 2013 Šifrování Autentizace ní slabiny 22. března 2013 Šifrování Autentizace ní slabiny Technologie Symetrické vs. asymetrické šifry (dnes kombinace) HTTPS Funguje nad HTTP Šifrování s pomocí SSL nebo TLS Šifrování

Více

Uživatelská příručka

Uživatelská příručka PŘÍLOHA B Uživatelská příručka Před prvním spuštění aplikace je nezbytné ujasnit si některé pojmy: web URL webových stránek, pro které se budou zjišťovat pozice. klíčové slovo - Slovní spojení nebo samostatné

Více

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Semináˇr Java X J2EE Semináˇr Java X p.1/23 Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,

Více

1. Začínáme s FrontPage 2003 11

1. Začínáme s FrontPage 2003 11 Úvod 9 1. Začínáme s FrontPage 2003 11 Instalace programu 12 Spuštění a ukončení programu 15 Základní ovládání 16 Hledání souborů 30 Najít a nahradit 31 Tisk 32 Schránka sady Office 34 Nápověda 36 Varianty

Více

Externí Helpdesk Uživatelská příručka. verze 1.00

Externí Helpdesk Uživatelská příručka. verze 1.00 Externí Helpdesk Uživatelská příručka verze 1.00 Externí Helpdesk uživatelská příručka k webovému prostředí Copyright 2011 Triada, spol. s r. o. Triada, spol. s r. o. U svobodárny 1110/12 190 00 Praha

Více

Použití databází na Webu

Použití databází na Webu 4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové

Více

Maturitní témata Školní rok: 2015/2016

Maturitní témata Školní rok: 2015/2016 Maturitní témata Školní rok: 2015/2016 Ředitel školy: Předmětová komise: Předseda předmětové komise: Předmět: PhDr. Karel Goš Informatika a výpočetní technika Mgr. Ivan Studnička Informatika a výpočetní

Více

Informace o poštovním provozu na serveru mail.ktkadan.cz a stručný návod na použití OpenWebMailu

Informace o poštovním provozu na serveru mail.ktkadan.cz a stručný návod na použití OpenWebMailu Informace o poštovním provozu na serveru mail.ktkadan.cz a stručný návod na použití OpenWebMailu 1. Obecné informace Příchozí zprávy se ukládají do vaší schránky na serveru mail.ktkadan.cz. Tuto schránku

Více

ZÁKLADNÍ POPIS INFORMAČNÍHO SYSTÉMU KAJOT EASY-K

ZÁKLADNÍ POPIS INFORMAČNÍHO SYSTÉMU KAJOT EASY-K ZÁKLADNÍ POPIS INFORMAČNÍHO SYSTÉMU KAJOT EASY-K ÚVOD Easy-K běží na serveru Apache a je vytvořen v PHP s MySQL databází, doplněn Javascriptem a jeho výstupem je Xhtml, popř. tiskové sestavy v pdf (možnost

Více

Informační systém pro e-learning manuál

Informační systém pro e-learning manuál Informační systém pro e-learning manuál Verze 1.00 Úvod Tento dokument popisuje způsob práce s informačním systémem pro elektronické vzdělávání. Systém je určený pro vytvoření elektronického kurzu a jeho

Více

Akceptační test. Úvod

Akceptační test. Úvod Verze 1.5 Akceptační test Úvod Tento dokument popisuje postup ověření softwaru, ohledně pokrytí požadavků. Obsahuje vstupní a výstupní parametry pro každý test. Testy Aplikace je napsána pro více uživatelských

Více

HLEDEJCENY.mobi. Obsah. Mobilní verze e-shopu. Důvody instalace

HLEDEJCENY.mobi. Obsah. Mobilní verze e-shopu. Důvody instalace Obsah HLEDEJCENY.mobi Mezi Vodami 1952/9 e-mail: info@hledejceny.cz HLEDEJCENY.mobi... 1 Mobilní verze e-shopu... 1 Důvody instalace... 1 Výhody... 2 Co je k mobilní verzi potřeba... 2 Objednávka služby...

Více

UŽIVATELSKÁ PŘÍRUČKA UČITEL

UŽIVATELSKÁ PŘÍRUČKA UČITEL VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA UŽIVATELSKÁ PŘÍRUČKA UČITEL INFORMAČNÍ SYSTÉM PRO ZÁKLADNÍ ŠKOLU LOŠTICE Radek ZIMMERMANN Obsah 1 Úvod... 3 2 Přístup... 3 3 Přihlášení do systému... 4

Více

MST - sběr dat pomocí mobilních terminálů on-line/off-line

MST - sběr dat pomocí mobilních terminálů on-line/off-line MST - sběr dat pomocí mobilních terminálů on-line/off-line Stručný přehled název: MST, software pro sběr dat mobilními terminály ve skladu (příjem, výdej, inventura) autor aplikace: FASK, spol. s r.o.,

Více

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná. Průběžná klasifikace Nová verze modulu Klasifikace žáků přináší novinky především v práci s průběžnou klasifikací. Pro zadání průběžné klasifikace ve třídě doposud existovaly 3 funkce Průběžná klasifikace,

Více

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Databázové aplikace pro internetové prostředí 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Projekt: Inovace výuky prostřednictvím ICT Registrační číslo: CZ.1.07/1.5.00/34.250

Více

Vstupní požadavky, doporučení a metodické pokyny

Vstupní požadavky, doporučení a metodické pokyny Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem

Více

Stručný průvodce aplikací Sběr dat pro CEP a CEZ

Stručný průvodce aplikací Sběr dat pro CEP a CEZ Stručný průvodce aplikací Sběr dat pro CEP a CEZ (verze 1.0) Rada pro výzkum a vývoj Úřad vlády ČR Určeno necertifikovanému dodavateli dat RVV 2003 1. Vstup do aplikace Informace pro uživatele, uživatelské

Více

Individuální projekt z předmětu webových stránek 2012 - Anketa Jan Livora

Individuální projekt z předmětu webových stránek 2012 - Anketa Jan Livora UŽIVATELSKÁ TECHNICKÁ DOKUMENTACE ANKETA : Individuální projekt z předmětu webových stránek 2012 - Anketa Jan Livora [2ITa] [sk1] 1 Obsah DŮLEŽITÉ UPOZORNĚNÍ!!!... 3 PROHLÁŠENÍ O AUTORSTVÍ:... 3 ANOTACE:...

Více

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou

Více

1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS

1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS 1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS Pro přístup do administrace služby GTS Bezpečný Internet používejte zákaznický WebCare GTS Czech, který je přístupny přes webové

Více

Obchodní příležitosti

Obchodní příležitosti Obchodní příležitosti Celá databáze HBI je koncipována tak, aby v co největší míře přispěla svým uživatelům registrovaným i neregistrovaným k co nejlepší orientaci na trhu. Což v praxi znamená, že se nemůže

Více

Registr práv a povinností

Registr práv a povinností Registr práv a povinností Doporučené postupy a nastavení internetového prohlížeče pro práci v aplikaci AIS RPP list č.1/20 OBSAH 1 Úvod... 3 2 Doporučené nastavení prohlížeče... 4 2.1 Problém s certifikátem...

Více