2) Stylopisem v hlavičce HTML dokumentu. Styly pro celý dokument jsou uvedeny
mezi tagy . Uvnitř párového tagu „style“ uvedeme nastavení stylu
pro jednotlivé elementy dokumentu.
3) Stylopisem v externím souboru. Jedná se o soubor, kde jsou zapsány všechny
styly, které se budou opakovaně využívat v celé webové aplikaci a tento soubor se
tagem „link“ připojí k html dokumentu. Tento způsob je asi nejvýhodnější,
chceme-li mít všechny styly pro aplikaci pohromadě a v jednotlivých souborech
aplikace se pak na ně můžeme jen odkazovat a jinak již používat (X)HTML bez
CSS.
Všechny tři možnosti lze samozřejmě i kombinovat, ale u složitějších stánek je potřeba si
v tom zavést určitý pořádek.
Vlastní zápis stylů (u možností 2) a 3)):
div { border: 2px white; width: 180px }
--nadefinuje styl pro tag div tag div teď
bude vždy vypadat tak jak jej nastavíme
.mujstyl { text-color: red; text-decoration: underline; }
-- definujeme si vlastní třídu a tu pak
budeme používat podle potřeby (přiřazovat
ji jednotlivým tagům
Použití vlastní třídy:
……..
………..
Pozn.:
Místo třídy můžeme definovat i identifikátor - #mujstyl { … }
Přiřazení je pak přes atribut tagu: id=“mujstyl“
Obecně je jedno co použijete (doporučuji třídy) rozdíly jsou při zpracovávání skriptů
Deklarace pro více elementů současně:
html, body { height: 100%; }
Kontextová deklarace:
td a { font-size: 10pt; }
Deklarace s pseudotřídou – (hlavně) tag a:
a {text-decoration: none; }
a:hover {text-decoration: underline}
pseudotřídy: visited, hover, link, active
Přehled některých nejpoužívanějších CSS vlastností
Zápis je vždy vlastnost:hodnota;
Vlastnosti:
width - šířka
height - výška
color - barva, název nebo #RRGGBB
background-color - barva pozadí
background-image - obr. na pozadí url(‘cesta k obrazku’)
background-repeat - opakování pozadí
font-family - písma – konkrétní názvy
font-style - styl
font-size - velikost
font-weight - tloušťka
text-decoration - dekorace textu
line-height - výška řádku
text-indent - odsazení 1. řádku
text-align - zarovnání text
vertical-align - vertikální zarovnání
margin - vnější okraj (margin-left, …..)
padding - vnitřní okraj (……)
border - rámečky (spousta možností)
atd …. opravdu spousta dalších možností a vlastností
Přehled např:
http://www.jakpsatweb.cz/css/css-vlastnosti-hodnoty-prehled.html
př.:
.nadpis {
color: #454A3D;
text-align:center;
font-weight:bold;
font-style:italic;
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 14pt;
text-decoration: none;
border-bottom: solid #454A3D 2px;
border-top: solid #454A3D 2px;
}
Dynamické www stránky, systémy řízení báze
dat a prostředky pro vývoj www aplikací
Systémy www aplikací
WWW (World Wide Web) je dnes společně s elektronickou poštou nejvyužívanější službou internetu. URL
(Uniform Resource Locator) slouží ke kompletní adresaci informace na internetu. Udává jak protokol, který je
k přístupu využit, tak i adresu serveru (doménovou nebo IP) a přesné umístění dokumentu.
Obecné schéma: protocol://[login_name[:heslo]@]adresa_serveru[:port][cesta]
Základním protokolem pro www je http (HypeText Transfer Protocol). Slouží k přenosu HTML dokumentů.
HTTP protokol pracuje formou klient-server. Klient zasílá požadavky a server na ně reaguje odpovědí. HTTP
existuje v několika verzích 0.9, 1.0 a 1.1. Jsou specifikovány RFC (Request for Comments), které stanoví normy
pro protokoly a systémy. HTTP 1.0 – RFC 1945, HTTP 1.1 – RFC 2068.
Pro provoz HTTP a tedy zpracovávání požadavků od klienta je potřeba mít nainstalovaný http server. Severů
existuje celá řada. Jako nejvhodnější se mi jeví Apache [1], který je dostupný zdarma formou open-source a pro
více platforem (v Linuxu bývá obvykle součástí většiny distribucí). Bylo by ale možné využít i např. MS IIS
(Internet Information Server). Apache HTTP server je jedním z nejpoužívanějších serverů na internetu. Podle [1]
ho využívá až 70% webových stránek na internetu. Apache http server je produktem Apache Software
Foundation, která se zabývá open-source softwarovými projekty. Apache se neustále vyvíjí a podporuje nové
vlastnosti.
HTTP server zpracovává požadavky klientů, kteří se k němu připojují za účelem získání HTML stránek.
Dynamické WWW stránky
Využití některé verze HTML je sice základem pro www aplikaci, ale pokud chceme, aby stránky aktivně
prováděly výpočty či vyhodnocování, aby spolupracovaly s databází a vytvářely kvalitní rozhraní celé aplikace,
musíme použít další nástroje.
První možností je použití skriptů a některého skriptovacího jazyka. Jsou to především CGI (Common
Gateway Interface) skripty zpracovávané na straně serveru. CGI skripty jsou nezávislé na programovacím
jazyku. Využití CGI skriptů je dnes výhodné jen za určitých podmínek (dlouhé a složité výpočty a jen krátké
zobrazovací výpisy). Další možností jsou JavaScript a VBScript zpracovávané na straně klientského počítače.
JavaScript je jazyk interpretovaný prohlížečem a není tedy zpracováván na straně serveru. Díky tomu
může být využit k účelům, kdy by bylo využití například PHP krajně nevhodné, například k aktivní stylizaci
dokumentů (tvorbě různých menu). Je ale možné ho využít i k jednoduchým výpočtům, interakci s dokumentem
či řízení prohlížeče. Jazyk podporuje většinu obvyklých příkazů, výrazů i operátorů, netypované proměnné a
využívá objektových vlastností. Do dokumentu se zapisuje tagem .
Mezi modernější jazyky zpracovávané serverem patří ASP (Active Server Pages) a PHP (PHP Hypertext
Preprocesor). ASP je skriptovací jazyk z dílny firmy Microsoft. Funguje na principu vkládaní vsuvek a příkazů
serverem a jejich interpretaci. Vlastní ASP se píší za pomocí VBScriptu nebo JScripu (implementace JavaScriptu
od Microsoftu). Novější možností je využití ASP.NET. Nejedná se již o skriptovací jazyk, ale o plnohodnotný
programovací jazyk využívající jádra .NET framework. ASP i ASP.NET je komerční aplikací.
Podobné možnosti jako ASP nabízí i PHP. PHP je na rozdíl od ASP open source [19], takže jsou
dostupné i kompletní zdrojové kódy a je k dispozici na více platformách. Opět pracuje na principu vkládání částí
kódu do HTML stránek. Tento kód interpretuje server a musí tedy na něm být podpora instalována. Klient, který
výslednou stránku zobrazuje, nepotřebuje žádnou dodatečnou instalaci aplikace nebo nastavení. Klientu (www
prohlížeči) je prakticky jedno zobrazuje-li stránku generovanou pomocí ASP, PHP nebo jen statickou HTML
stránku. PHP podporuje celou řadu databázových SQL serverů, se kterými dokáže pomocí vlastní sady funkcí
komunikovat. Pro administraci MySQL databáze pomocí PHP existují dokonce zvláštní nástroje jako je
phpMyAdmin [24].
Stránky obsahující PHP musí být na serveru rozpoznány (například díky příponě php) a potom může být
kód zpracován. V praxi se v jednom dokumentu často kombinuje PHP kód spolu s HTML. K oddělení se PHP
zapisuje do zvláštních značek:
- . . . ?>
-
-
Obecně lze využít všech třech způsobů s tím rozdílem, že druhá varianta je vyžadována normou XML.
PHP podporuje proměnné různých typů včetně složených polí a objektů i příkazy typu if, while a podobně.
Samozřejmostí je celá řada využitelných funkcí pro matematické výpočty, spolupráci s databázemi, soubory,
protokoly a mnohé další [19]. Jeho použití je do jisté míry podobné jazykům C/C++.
Systémy řízení báze dat
Databází rozumíme uspořádanou množinu informací (dat) uloženou na paměťovém médiu. Systém řízení báze
dat (SŘBD) je databáze včetně softwarových prostředků umožňující přístup k těmto datům a manipulaci s nimi.
Obvykle je pro jednoduchost pojmem databáze myšlen celý SŘBD.
Databáze slouží k přehlednému ukládání většího množství dat a snadné a efektivní další práci s nimi.
Z hlediska ukládání dat a vazeb mezi nimi můžeme rozdělit databáze na následující typy:
- Síťové databáze
- Hierarchické databáze
- Relační databáze
- Objektové databáze
- Objektové relační databáze
- Ostatní typy
Nejrozšířenějším typem jsou databáze relační (případně objektové relační). Relační databáze je založena
na relačním matematickém modelu. Ze dvou množin dat je možné vytvořit kartézský součin a relace je
podmnožinou tohoto součinu odpovídající jisté skutečnosti. Data jsou uložena do tabulek (n-tic) s pevně
stanovenými typy položek (sloupce) a jednotlivé položky jsou uloženy v řádcích. Mezi tabulkami majícími stejný
typ sloupce mohou pak existovat vazby (relace).
Jazykem pro ovládání databáze je SQL (Structured Query Language - strukturovaný dotazovací jazyk).
SQL se však prosadil jako de facto standard a ANSI (American National Standards Institute) založil standard na
tomto jazyku. S jazykem se pracuje pomocí sady příkazů pro definici, manipulaci a řízení dat.
Jazyk SQL využívá celá řada databázových systémů a určit, který je nejlepší, není prakticky možné.
Vždy záleží na konkrétních požadavcích, které od systému očekáváme. Mezi nejznámější databázové systémy
patří: Oracle, MS SQL, MySQL, PostgreSQL:
Každý databázový systém má svoje klady a zápory. Výběr záleží na konkrétní aplikaci, na použitelnosti
ve vybraném implementačním jazyku a platformě.
Princip
Za pomocí PHP (a ostatních jazyků) je možné vytvořit distribuovanou webovou aplikaci. Celý sytém
webového serveru s podporou PHP a databáze SQL pracuje následujícím způsobem. Klient přes www prohlížeč
odesílá na server požadavky, server za pomocí PHP a databáze zpracuje výsledný kód a odesílá uživateli čistý
HTML kód (případně včetně CSS a JavaScriptu). Požadavky klienta jsou získávány většinou odesíláním HTML
formulářů a jejich zpracováváním pomocí PHP na straně serveru.
Proces je vidět na následujícím obrázku:
Instalace a zprovoznění www stránek
Jak tedy zprovoznit svoje vlastní www stránky? Existuje několik možností. V první řadě si stránky
musím vytvořit (nebo nechat vytvořit). Pokud budu používat některé serverové skripty, jako je PHP musím mít
při testování (a to je třeba často) nainstalovanou podporu. Mohu si tedy na svůj počítač nainstalovat http server
(např. Apache) a PHP. Pak mohu jednoduše lokálně testovat svoje stránky. Pokud budu chtít využívat i databáze,
a pro větší aplikace je to téměř nezbytnost musím nainstalovat i databázový stroj. Ke konfiguraci a vytvoření
databáze bych ale měl znát, alespoň základy SQL.
Jakmile mám stránky vytvořeny, chci je vystavit na internetu. To modu udělat více způsoby:
- vlastní PC s veřejnou IP adresou, PC musí být stále zapnuté (tedy pokud se mají uživatelé
připojit a prohlížet si stránky či pracovat v aplikaci).
- zakoupení webhostingu – za měsíční poplatek si pronajmu místo na serveru a s tím i služby, tam
nahraji svoje stránky.
Databáze SQL
PHP začlenění
zpracování dat
HTTP Server
SQL příkaz Data
HTML kód
Požadavek
- freehosting – pokud nechci platit existují i servery, na které mohu umístit svoje stránky zdarma,
zde ale většinou nemám všechny služby (např. PHP) a také adresa není reprezentativní.
Stránky mohou být samozřejmě viděny a provozovány pod IP adresou, ale lepší je mít adresu
v doménovém tvaru (např. www.mojestranka.cz).
Doménu v podobném tvaru, tedy přímo v nějaké národní nebo generické doméně první úrovně, si mohu
za roční poplatek zaregistrovat (např. www.nic.cz). Na freehostingu dostanu většinou doménu nižší úrovně (např.
mojestranka.unas.cz).
Pokud mám dynamickou IP adresu na svém počítači a chci na ní provozovat server s doménovou
adresou, která bude stálá, existují i zde služby (https://www.dyndns.com/).
Základy PHP
PHP skripty jsou programy běžící na serveru. Píšou se podobně jako normální (X)HTML, jenom občas
obsahují kousek PHP kódu ?>, který je serverem při odesílání vyhodnocován. Kdekoliv na stránce se prostě
napíší znaky , PHP kód … ?> .
Doporučuji např. http://www.jakpsatweb.cz/php/moznosti-php.html
www.php.net
Některé příkazy PHP:
echo "text text text"; // vypíše text – tedy i HTML tagy a podobně.
INCLUDE "menu.php"; // vloží na místo obsah jiného souboru (HTML, PHP)
Exit; // ukončí provádění skriptu
Proměnné:
$nazev = ……; // nadefinování jména proměnné a popř. přiřazení hodnoty
IsSet(); // zjistí jestli proměnná zadaná jako parametr existuje
PHP v odkazech:
page01.php?str=detailprojektu&akce=uprava
// pokud je použito jako adresa odkazu např. u tagu tak ...
přejde na stránku page01.php
a zároveň vytvoří proměnnou $_REQUEST['str'], které přiřadí hodnotu „detailprojektu”
atd…
Řízení toku dat:
If (PODMÍNKA) { // podmíněný příkaz
…
}
else {
….
}
while (PODMÍNKA) { ….. } // cyklus while
for (expr1; expr2; expr3) { ... } // cyklus for
function NAZEV_FUNKCE(PARAMETRY_ODDELENE_CARKAMI) { //definice funkce
...
}