Upozornění pro čtenáře a uživatele této knihy

Všechna práva vyhrazena. Žádná část této tištěné či elektronické knihy nesmí být reprodukována a šířena v papírové, elektronické či jiné podobě bez předchozího písemného souhlasu nakladatele. Neoprávněné užití této knihy bude trestně stíháno.

PHP 6

začínáme programovat (ukážka)

David Procházka

Vydala Grada Publishing, a.s.

U Průhonu 22, Praha 7

jako svou 4640. publikaci

Odpovědný redaktor Pavel Němeček

Sazba Tomáš Brejcha

Počet stran 192

První vydání, Praha 2012

© Grada Publishing, a.s., 2012

V knize použité názvy programových produktů, firem apod. mohou být ochrannými

známkami nebo registrovanými ochrannými známkami příslušných vlastníků.

Vytiskly Tiskárny Havlíčkův Brod, a. s.

Husova ulice 1881, Havlíčkův Brod

ISBN 978-80-247-3899-4 (tištěná verze)

ISBN 978-80-247-7578-4 (elektronická verze ve formátu PDF)

ISBN 978-80-247-7579-1 (elektronická verze ve formátu EPUB)

Úvod

K vývoji moderních webových stránek se v dnešní době využívají ponejvíce technologie XHTML a CSS. S těmito technologiemi si vystačíte pouze do doby, kdy vyvíjíte statické webové stránky. Pokud potřebujete zavést do stránek dynamiku nebo vytvořit funkční webovou aplikaci či webový portál, pak nutně potřebujete technologii, která vašim stránkám vdechne život.

Jednou možností je sáhnout po platformě společnosti Microsoft v podobě stránek oživených technologií ASP.NET. Pro tuto technologii ale jen těžko seženete levný webhosting, a navíc budete potřebovat sofistikované vývojové nástroje s kompilací zdrojových kódů. Druhou možností je sáhnout po mnohem podporovanější platformě na bázi PHP. A právě o této masově využívané platformě pojednává tato publikace.

Základní tvorba WWW stránek není programování v pravém slova smyslu, ale spíše kódování, tedy soupis obsahu stránky způsobem, který dokáže internetový prohlížeč jednoduše dekódovat. Ale pro programátora technologie PHP je zvládnutí skriptovacího jazyka (X)HTML s aplikací kaskádových CSS stylů naprostou nutností. Pomocí kombinace těchto dvou technologií jste schopni zpracovat prakticky jakékoli běžné webové stránky.

Stránky lze poměrně snadno doplnit o JavaScript, který jim dodá vyšší dynamiku. Dalším logickým krokem je zapojení technologie PHP, která dokáže provádět výkonné operace nad daty a pracovat s databází. Stránky, které využívají tuto technologii, jsou nazývány dynamické, neboť se mohou co do obsahu v čase měnit, bez ohledu na to, jak je nastaven jejich vzhled.

Tato publikace vás provede základními principy internetu a elementárními základy tvorby HTML stránek. Dále se bude publikace věnovat strukturálnímu i objektovému modelu programování v PHP se zapojením databáze MySQL Dozvíte se nejen informace o vývoji stránek, ale dostanete kompletní studijní materiál, který vás provede tvorbou webu, programováním základních aplikací a dá vám cenné informace z praxe. Při výkladu PHP kódu se pokouším neustále předvádět nové informace na příkladech, a preferuji tak v celé knize praktické příklady nad zbytečně obsáhlou teorií.

Veškeré zdrojové kódy, uvedené v této knize, si můžete stáhnout z webových stránek www.grada.cz nebo z adresy www.davidprochazka.cz. Díky tomu si vyzkoušíte všechny příklady bez náročného přepisování.

O autorovi

David Procházka je vývojář specializovaných a průmyslových aplikací ve společnosti VÍTKOVICE IT SOLUTIONS a.s., která spadá do skupiny VÍTKOVICE MACHINERY GROUP. V rámci své pracovní náplně pracuje s databázemi Oracle, MSSQL, Firebird a MySQL. Dále spravuje holdingový intranet a webové prezentace více než čtyřiceti dceřiných společností holdingu. V poslední době se zabývá vedením týmu programátorů nad produktem Microsoft Sharepoint. Autor absolvoval řadu školení, je držitelem certifikátů a účastní se meetingů v oblasti databází a programování. Mimo tuto činnost je také autorem několika odborných publikací a stovek článků v IT magazínech a na internetu.

1.

Internet a základní pojmy

První kapitola této publikace shrnuje základní informace o internetu, jeho historii, vývoji a zejména o technologiích, které se v souvislosti s vytvářením dynamických webových aplikací nejčastěji skloňují. Dozvíte se v ní zejména základní standardy internetu a webových stránek. Nebudeme ale zabíhat do přílišných podrobností, které se základů tvorby netýkají. Tato kapitola je tedy jakýsi odrazový můstek pro zvládnutí vlastní tvorby webu. Dozvíte se zde, jak si můžete vytvořit testovací prostředí pro vývoj stránek, jak se stránky na internet umisťují a jak probíhá registrace vlastní WWW adresy. Ve druhé části kapitoly se dočtete také o nástrojích a programech, které jsou pro tvorbu stránek a PHP aplikací doporučené, a v neposlední řadě si stanovíme určité principy, které budeme v knize dodržovat.

1.1 Několik slov o internetu

Internet je velmi rozsáhlá počítačová síť, jejíž hierarchie se řídí určitými pravidly. V minulosti byl výsadou akademických a vědeckých pracovníků, běžní uživatelé se k jeho obsahu dostali jen výjimečně. Dnes jej používají děti, studenti, rodiny, důchodci, prostě všichni, kteří chtějí informovat a být informováni. Nemalé procento uživatelů internetu tvoří lidé, kteří chtějí komunikovat, přičemž internet jim poskytuje levnou a pohodlnou cestu ke spojení s celým světem.

Obrázek 1.1: Díky internetu jste spojeni s celým světem

1.1.1 Co je to internet

Internet je celosvětová počítačová síť, která spojuje jednotlivé menší sítě, pomocí sady protokolů zvaných IP (Internet Protocol). Pro upřesnění, protokolem je v počítačové terminologii myšlena soustava pravidel – obvykle tedy norma komunikace.

Název internet pochází z anglického jazyka, ze slova network (síť), podle něhož končily tradičně názvy amerických počítačových sítí – například Arpanet, a mezinárodní (původně latinské) předpony inter (mezi), vyjadřující, že internet propojil a vstřebal různé starší, dílčí, specializované, proprietární a lokální sítě. Historie internetu je velice košatá a vydala by na samostatnou odbornou publikaci, proto se o ní zmíníme jen krátce.

Počátky internetu započaly u myšlenky vytvoření počítačové sítě, která by spolehlivě propojila strategické, vojenské, vládní a akademické počítače tak, aby zároveň dokázala přežít jaderný úder či jiné hrozby. Zájmem tvůrců bylo také to, aby síť byla co nejméně zranitelná. Byla navržena bez hlavního řídicího centra. Skládala se z řady vzájemně propojených uzlů rovnocenné důležitosti. Posílaná data se na dobu přenosu rozdělí na několik samostatných částí nazývaných pakety.

Každý z paketů je vybaven údajem o adresátovi, a tvoří tak de facto autonomní zásilku, která cestuje k cíli samostatně, svou vlastní cestou, nezávisle na ostatních paketech. V případě zničení jedné z přenosových cest může paket bez problémů dojít k adresátovi alternativní cestou – přes zbývající zachovalé uzly. A to je vlastně základ koncepce internetu, jak ji známe dodnes.

Obrázek 1.2: Na internet se připojují lidé z různých končin Země

1.1.2 Důležité mezníky ve vývoji internetu

V období vývoje internetu od roku 1969 až po současnost docházelo k bouřlivému vývoji, technologickému postupu a aplikaci řady nových technologií. Uveďme si nyní výběr jen těch nejdůležitějších okamžiků.

1969 – vytvořena experimentální síť ARPANET, první pokusy s přepojováním uzlů

1972 – Ray Tomlinson vyvíjí první emailovou aplikaci

1980 – experimentální provoz protokolu TCP/IP v síti ARPANET

1984 – vyvinut DNS (Domain Name System)

1987 – vzniká označení sítě jako internet

1990 – končí ARPANET

1991 – nasazení WWW (World Wide Web) v evropské laboratoři CERN

1994 – internet přechází z rukou vědců do komerčního užití

1996 – překonáno 55 milionů uživatelů na světě

2000 – 250 milionů uživatelů

2006 – více než miliarda uživatelů

Obrázek 1.3: Arpanet začínal v době sálových počítačů

1.1.3 Internetový protokol TCP/IP

Protokolová struktura TCP/IP je definována jako sada protokolů pro komunikaci v počítačové síti, jež se využívá zejména na internetu, ale také v běžných počítačových sítích. Jde vlastně o komunikační protokol, což je množina pravidel, které určují podobu a význam jednotlivých zpráv při komunikaci. Vzhledem ke složitosti problémů je síťová komunikace rozdělena do tzv. vrstev, které znázorňují hierarchii činností. Výměna informací mezi vrstvami je přesně definována.

Každá vrstva využívá služeb vrstvy nižší a poskytuje své služby vrstvě vyšší. Celkový význam zkratky TCP/IP je Transmission Control Protocol/Internet Protocol. Komunikace mezi stejnými vrstvami dvou různých systémů je řízena komunikačním protokolem za použití spojení vytvořeného sousední nižší vrstvou. Architektura umožňuje možnost výměny protokolů jedné vrstvy bez dopadu na ostatní. Architektura TCP/IP je členěna do čtyř vrstev (na rozdíl od referenčního modelu ISO/OSI se sedmi vrstvami): aplikační vrstva (application layer), transportní vrstva (transport layer), síťová vrstva (network layer) a vrstva síťového rozhraní (network interface).

Obrázek 1.4: Sedm vrstev modelu ISO/OSI

Protokol TCP

TCP protokol (Transmission Control Protocol) je jeden ze základních ze sady protokolů internetu, typicky představuje transportní vrstvu komunikace. Použitím TCP protokolu mohou aplikace na počítačích zapojených do počítačové sítě vytvořit mezi sebou spojení, přes které lze přenášet data. Protokol garantuje spolehlivé doručování a doručování ve správném pořadí. TCP také rozlišuje data pro vícenásobné, současně běžící aplikace (například webový server a emailový server) běžící na stejném počítači. TCP podporuje mnoho na internetu populárních aplikačních protokolů a aplikací, včetně WWW, elektronické pošty a SSH (Secure Shell).

Protokol IP

IP protokol (Internet Protocol) je datový protokol používaný pro přenos dat přes paketové sítě. Data se pomocí IP posílají síti po blocích nazývaných datagramy (jedná se o název pro datový paket specifický pro prostředí protokolu IP). Jednotlivé datagramy putují sítí zcela nezávisle, na začátku komunikace není potřeba navazovat spojení či jinak předpřipravovat cestu datům, přestože spolu třeba příslušné stroje nikdy předtím nekomunikovaly. IP protokol v doručování datagramů poskytuje nespolehlivou službu, označuje se také jako služba nejlepšího úsilí; tj. všechny stroje na trase se datagram snaží podle svých možností poslat blíže k cíli, ale nezaručují praktické doručení do cíle. Datagram vůbec nemusí dorazit, může být naopak doručen několikrát a IP protokol neručí ani za pořadí doručených datagramů.

1.1.4 Identifikace počítačů v internetu

Kterékoli síťové rozhraní komunikující prostřednictvím protokolu IP má přiřazeno jednoznačný identifikátor, tzv. IP adresu. IP adresa je v rámci internetu zásadní věcí a je dobré vědět, co IP znamená. V každém datagramu je pak uvedena IP adresa odesilatele i příjemce. Na základě IP adresy příjemce pak každý počítač na trase provádí rozhodnutí, jakým směrem paket odeslat, tzv. směrování (routing). To mají na starosti zejména specializované stroje označované jako směrovače (routery). Pro snadnou orientaci byl zaveden systém pojmenování domén, tzv. DNS. Doménová jména se v tomto systému překládají na IP adresy a naopak. Použitelnost je mnohem lepší, uživatelé si nemusejí pamatovat dlouhá čísla, pamatují si názvy.

Domény

Domény jsou vlastně IP adresy převedené na text. Jméno počítače se skládá z domén oddělených tečkou, např. http://mail.volny.cz. Doména nejvyšší úrovně je vpravo (cz), doména druhé úrovně je vlevo od ní (volny), určuje název organizace, 3. úroveň určuje název počítače v rámci organizace apod. Doména první úrovně určuje skupinu podle země nebo kategorie (cz – Česká republika, us – USA, com – komerční organizace, edu – vzdělávací instituce, gov – vládní stránky, mil – vojenské stránky atd.).

Obrázek 1.5: Zápis www adresy do prohlížeče internetu

Různé verze IP adres

Každý počítač připojený k internetu má svoji IP adresu. Donedávna platilo, že IP adresa je 32bitové číslo a že se uvádí jako čtyři desítková čísla v rozmezí 0–255 oddělená tečkou – např. 192.168.1.1. Tato informace je stále pravdivá, ale jelikož postupem času došlo k vyčerpání adresního rozsahu, který tvořil počet 2^32 = 4 294 967 296, bylo nutno zavést další verzi IP protokolu. Prvotní a stále využívaná verze má označení IPv4, novější pak IPv6. Tato verze má kromě jiného adresy 128bitové, které poskytují větší adresní prostor než 32bitové adresy v IPv4. V praxi je užití modernizované verze IP protokolu méně praktické, protože adresy obsahují také šestnáctkové hodnoty – typická IP adresa je tak v IPv6 například takováto – 2001:0db8:0:0:0:0:1428:57ab.

Obrázek 1.6: IP adresa identifikuje každý jednotlivý počítač v internetu

MAC adresa síťové karty

Drtivá většina počítačů je do internetu připojena pomocí síťové karty. Je to zařízení, do kterého zapojíte síťový (UTP) kabel z modemu nebo směrovače. Každá síťová karta má tzv. MAC adresu. MAC adresa (z anglického „Media Access Control“) je jedinečný identifikátor síťového zařízení, který používají různé protokoly druhé (spojové) vrstvy OSI. Je přiřazována síťové kartě bezprostředně při její výrobě a je jakýmsi jedinečným rodným číslem. MAC adresa přidělená výrobcem je vždy celosvětově jedinečná. Z hlediska přidělování je rozdělena na dvě poloviny. O první polovinu musí výrobce požádat centrálního správce adresního prostoru a je u všech karet daného výrobce stejná (či alespoň velké skupiny karet, velcí výrobci mají k dispozici několik hodnot pro první polovinu). Výrobce pak každé vyrobené kartě či zařízení přiřazuje jedinečnou hodnotu druhé poloviny adresy. MAC adresa může mít třeba takovýto tvar: 00-11-09-95-26-FE.

Obrázek 1.7: Serverová síťová karta s jedinečnou MAC adresou

1.1.5 Protokol HTTP – hypertext

HTTP (Hyper Text Transfer Protocol) je internetový protokol určený původně pro výměnu hypertextových dokumentů ve formátu HTML (HyperText Markup Language). Tento protokol je spolu s elektronickou poštou tím nejvíce používaným a zasloužil se o obrovský rozmach internetu v posledních letech. HTTP používá jako některé další aplikace tzv. jednotný lokátor prostředků URL (Uniform Resource Locator), který specifikuje jednoznačné umístění nějakého zdroje v internetu. K protokolu HTTP existuje také jeho bezpečnější verze označovaná jako HTTPS, která umožňuje přenášená data šifrovat, a tím chránit před odposlechem či jiným narušením. Protokol funguje způsobem dotaz-odpověď. Uživatel (pomocí programu, obvykle internetového prohlížeče) pošle serveru dotaz ve formě čistého textu, obsahujícího označení požadovaného dokumentu, informace o schopnostech prohlížeče apod. Server poté odpoví pomocí několika řádků textu popisujících výsledek dotazu (zda se dokument podařilo najít, jakého typu dokument je atd.), za kterými následují data samotného požadovaného dokumentu.

1.1.6 WWW a brouzdání

World Wide Web (WWW, také pouze zkráceně web), ve volném překladu celosvětová pavučina, je označení pro aplikace internetového protokolu HTTP. Je tím myšlena soustava propojených hypertextových dokumentů. V češtině se slovo web často používá nejen pro označení celosvětové sítě dokumentů, ale také pro označení jednotlivé soustavy dokumentů dostupných na tomtéž webovém serveru nebo na téže internetové doméně nejnižšího stupně (internetové stránce). Dokumenty umístěné na počítačových serverech jsou adresovány pomocí URL, jehož součástí je i doména a jméno počítače. Název naprosté většiny těchto serverů začíná zkratkou WWW, i když je možné používat libovolné jméno vyhovující pravidlům URL. Protokol HTTP je dnes již používán i pro přenos jiných dokumentů, než jen souborů ve tvaru HTML a výraz World Wide Web se postupně stává pro laickou veřejnost synonymem pro internetové aplikace.

Obrázek 1.8: Okno webového prohlížeče při procházení webu

1.2 Základní pojmy a zkratky

V předchozí části knihy jsme si řekli o základech internetu. Ty ale povětšinou lidé, kteří chtějí tvořit dynamické webové stránky a aplikace, alespoň rámcově znají. Nyní je čas přejít od slov k činům, a přesunout se tak blíže k problematice vytváření PHP skriptů. Začněme pojmy, se kterými se v průběhu tvorby můžete setkat. Pojmy jsou seřazeny podle abecedy.

AJAX

AJAX (Asynchronous JavaScript and XML) je označení pro sadu technologií určenou k vývoji interaktivních webových aplikací, které mění obsah svých stránek bez nutnosti jejich znovu načítání. Na rozdíl od klasických webových aplikací poskytují uživatelsky příjemnější prostředí, ale vyžadují použití moderních webových prohlížečů. Mezi výhody patří odstranění nutnosti znovunačtení a překreslení celé stránky při každé operaci, které jsou nutné u klasického modelu WWW stránek. Pokud například uživatel klepne na tlačítko pro udělení hlasu v nějaké anketě, celá stránka se musí znovu načíst ze serveru, třebaže se na ní jen například aktualizují výsledky hlasování a veškerý zbytek obsahu zůstává stejný.

Apache

Apache HTTP Server je softwarový webový server. Využívá se u většině webhostingů, kde provozovatel deklaruje podporu technologie PHP. Apache můžete mít nainstalován také na svém počítači. Díky jeho přítomnosti v operačním systému budete moci ladit a testovat své stránky s prvky HTML a PHP kódu. Pokud budete ladit dynamické webové stránky na vlastním počítači, pak budete vlastní instanci Apache serveru potřebovat. V další části knihy si ukážeme, jak na to.

Obrázek 1.9: Trojlístek technologií souvisejících s provozem PHP

ASP

ASP (Active Server Pages) je skriptovací platforma společnosti Microsoft, primárně určená pro dynamické zpracování webových stránek na straně serveru. Dalo by se říci, že šlo v jisté době o konkurenci technologie PHP, ale celý projekt se příliš neujal. Dnes jde prakticky o mrtvou technologii, kterou nemá valnějšího smyslu se zabývat. Její nástupce, ASP.NET, lze chápat jako širší a komplexnější technologii, která se od ASP v mnoha ohledech fundamentálně liší.

ASP.NET

ASP.NET je součást .NET Frameworku pro tvorbu webových aplikací a služeb. Je nástupcem technologie ASP. Ačkoli název ASP.NET je odvozen od starší technologie pro vývoj webů ASP, obě technologie jsou velmi odlišné. ASP.NET je založen na CLR (Common Language Runtime), který je sdílen všemi aplikacemi postavenými na .NET Frameworku. Programátoři tak mohou realizovat své projekty v jakémkoli jazyce podporujícím CLR, např. Visual Basic.NET, JScript.NET, C#, Managed C++, ale i mutace Perlu, Pythonu a další. Aplikace založené na ASP.NET jsou také rychlejší, neboť jsou předkompilovány do jednoho či několika málo DLL souborů, na rozdíl od ryze skriptovacích jazyků, kde jsou stránky při každém přístupu znovu a znovu parsovány. Pro zvládnutí této technologie je nutné být pokročilým vývojářem webů a mít alespoň elementární znalosti vyšších programovacích jazyků.

CSS

Kaskádové styly, neboli Cascading Style Sheets se zkratkou CSS, je jazyk pro popis způsobu zobrazení stránek napsaných v jazycích HTML, XHTML nebo XML. Hlavním smyslem je umožnit návrhářům oddělit vzhled dokumentu od jeho struktury a obsahu. Původně to měl umožnit už jazyk HTML, ale v důsledku nedostatečných standardů a konkurenčního boje výrobců prohlížečů se vyvinul jinak. Starší verze HTML obsahují celou řadu elementů, které nepopisují obsah a strukturu dokumentu, ale i způsob jeho zobrazení. Z hlediska zpracování dokumentů a vyhledávání informací není takový vývoj žádoucí.

Doména (internetová)

Internetová doména (doménové jméno) je jednoznačné jméno (identifikátor) počítače nebo počítačové sítě, které jsou připojené do internetu. Příkladem doménového jména je www.grada.cz. Doménové jméno je tvořeno posloupností několika částí oddělených tečkami. Části mezi tečkami jsou také někdy číslovány (odzadu), takže např. cz je doména 1. úrovně, grada.cz je doména 2. úrovně atd. Cena domény na internetu se liší dle oblasti a poskytovatele. Například za běžnou doménu CZ zaplatíte zhruba 250 Kč. Pokud chcete svou prezentaci kupříkladu na adrese www.mojeadresa.cz, pak budete potřebovat nejen doménu (adresu), ale také webhosting (viz níže). Domény i webhosting si můžete objednat u mnoha českých hostingových společností.

FTP

FTP (File Transfer Protocol) je v informatice protokol pro přenos souborů mezi počítači pomocí počítačové sítě. V případě webových stránek se FTP využívá ke zkopírování hotových webových stránek na webhosting. Abyste mohli stránky na webhostingový server kopírovat skrze FTP, budete potřebovat specializovanou aplikaci, FTP klient. Funkci FTP připojení v sobě obsahují i souborové manažery, například Total Commaner.

HTML

HyperText Markup Language, označovaný zkratkou HTML, je značkovací jazyk pro hypertext. Je jedním z jazyků pro vytváření stránek v systému World Wide Web, který umožňuje publikaci dokumentů na internetu. Je charakterizován množinou značek (tzv. tagů) a jejich atributů definovaných pro danou verzi. Mezi značky se uzavírají části textu dokumentu a tím se určuje význam (sémantika) obsaženého textu. Názvy jednotlivých značek se uzavírají mezi úhlové závorky < a >. Část dokumentu tvořená otevírací značkou, nějakým obsahem a odpovídající ukončovací značkou tvoří tzv. element (prvek) dokumentu. Například <strong> je otevírací značka pro zvýraznění textu a <strong>Červená Karkulka</strong> je element obsahující zvýrazněný text (tučné písmo). Součástí obsahu elementu mohou být další vnořené elementy.

Obrázek 1.10: FTP připojení v programu Total Commander

JavaScript

JavaScript je multiplatformní, objektově orientovaný skriptovací jazyk, který se zpravidla používá jako interpretovaný programovací jazyk pro WWW stránky, často vkládaný přímo do HTML kódu stránky. Jsou jím obvykle ovládány různé interaktivní prvky – tlačítka, textová políčka, formuláře nebo tvořeny animace a efekty obrázků. Jeho syntaxe patří do rodiny jazyků C/C++/Java. Slovo Java je však součástí jeho názvu pouze z marketingových důvodů a s programovacím jazykem Java jej vedle názvu spojuje jen podobná syntaxe. Javascript lze nejlépe co do syntaxe připodobnit k PHP. Novější podobou Javascriptu je asynchronní Javascript, nazývaný AJAX (viz výše).

MySQL databáze

MySQL je multiplatformní databáze. Komunikace s ní probíhá – jak už název napovídá – pomocí jazyka SQL. Podobně jako u ostatních SQL databází se jedná o dialekt tohoto jazyka s některými rozšířeními. V rámci programování dynamických webových stránek jde o nejpoužívanější databázový systém na světě. Většina webhostingů podporujících jazyk PHP nabízí také databázi MySQL, kterou lze právě s PHP snadno propojit do podoby dynamické webové aplikace. Stejně jako server Apache, také databázi MySQL můžete provozovat na vlastním počítači a simulovat si tak webové prostředí. V další části knihy si ukážeme, kterak si databázi nainstalujete na lokální počítač.

Obrázek 1.11: Správa MySQL databáze v PhpMyAdmin

PHP

PHP (původně Personal Home Page, nyní obvykle rekurzivně Hypertext Preprocessor) je skriptovací programovací jazyk, určený především pro programování dynamických internetových stránek. Nejčastěji se začleňuje přímo do struktury jazyka HTML, XHTML či XML, což lze využít při tvorbě webových aplikací. PHP lze použít i k tvorbě konzolových a desktopových aplikací. PHP je vedle ASP jedním ze dvou nejrozšířenějších skriptovacích jazyků pro web. Oblíbeným se stal především díky jednoduchosti použití, bohaté zásobě funkcí, a tomu, že kombinuje vlastnosti více programovacích jazyků a nechává tak vývojáři částečnou svobodu v syntaxi.

Tag

Tag je označení pro kódovou značku HTML nebo XHTML jazyka. Tag je obvykle ohraničen znaky < a >. Pomocí tagů lze například stanovit základní oddíly stránky, vymezit formátování textu (ne v XHTML, tam je potřeba využít CSS) apod. S tagy v nejrůznější podobě se blíže setkáte u tvorby sebejednodušší WWW stránky. Typické příklady tagů: <a>, <img>, <head>, <body> apod.

Webhosting

Webhosting je pronájem prostoru pro webové stránky na cizím serveru. Pronajímatel serveru bývá označován jako poskytovatel webhostingu (webového prostoru). Díky webhostingu si můžete své webové stránky umístit na internet, aniž byste museli mít vlastní server. Ceny za webhosting se pohybují od pár korun až po několik tisíc za měsíc. Existuje i bezplatná varianta, tzv. freehosting. Freehosting obvykle nezahrnuje žádné záruky ohledně funkčnosti, má omezenou technickou podporu. Často je s freehostingem spojeno umisťování reklamy na stránkách. Webhosting je pouze samotné umístění stránek na serveru poskytovatele. Aby se uživatelé internetu ke stránkám dostali, je potřeba mít zaregistrovánu doménu (např. s názvem společnosti). Alternativně lze u některých firem zdarma využít domény 3. řádu, například vasejmeno.poskytovatel.cz. V případě vyšších nároků na rychlost, spolehlivost a na podporované služby a technologie je dalším krokem serverhosting, kdy je zákazníkovi pronajímán celý server.

XHTML

XHTML (zkratka anglického extensible hypertext markup language – „rozšiřitelný hypertextový značkovací jazyk“) je značkovací jazyk pro tvorbu hypertextových dokumentů v prostředí WWW vyvinutý W3C. Původně se předpokládalo, že se stane nástupcem jazyka HTML, jehož vývoj byl verzí 4.01 ukončen. V roce 2007 však došlo k založení pracovní skupiny, která má za cíl vytvořit novou verzi HTML, která ponese označení HTML 5 a její XML variantu XHTML 5. Vedle toho paralelně pokračuje i vývoj XHTML 2.0.

1.3 Filosofie tvorby webových aplikací

Nezkušení autoři webových aplikací a dynamických stránek dělají často velkou chybu, když k vývoji přistupují zbrkle, nepromyslí si celý projekt a vrhají se překotně na různé části tvůrčí činnosti. Z vlastní zkušenosti vás chci varovat před chybami, které mohou hned na začátku pohřbít váš projekt, aniž byste napsali jedinou webovou stránku.

1.3.1 Jak postupovat při plánování projektu www stránek

Nejdůležitější ze všeho je před započetím jakékoli práce hodně přemýšlet, vše si sepsat a zvážit, a až poté začít s realizací.

1. Nejprve si stanovte cíl svého snažení. Některé cíle mohou znít jednoduše, ale problematika projektů bývá složitější, než to na první pohled vypadá.

2. Stanovte si, jaké technologie pro realizaci využijete a jak by mělo vypadat vypracování jednotlivých kroků.

3. Nezačínejte tvorbu jen a pouze od vzhledu a od výsledného efektu. Webové stránky mají dobrý základ v rozvržení souborové struktury, provázanosti jednotlivých částí a jednoduché změně grafiky pomocí CSS stylů.

4. Pokud je to možné, konzultujte vývoj, vzhled a chování webu s osobou, která má v této problematice přehled – poslouchejte názory druhých.

5. Dbejte dodržování validity a testujte stránky vždy v několika prohlížečích na několika počítačích, ideálně i takových, které mají jiný operační systém než Windows.

6. Zvažte možnost vytvoření mobilní verze stránek. Prohlížení webových stránek z mobilu či tabletu je dnes zcela běžné.

7. Propagujete-li svůj web či produktové stránky, je nesmírně důležité dodržet zásady SEO pro snadnou indexaci stránek vyhledávači. Můžete také využít marketing velkých vyhledávačů pro zviditelnění svého obsahu.

1.3.2 Nejčastější chyby, které pohřbí váš projekt

Nelze samozřejmě popsat všechny chyby, které lze při přípravě webových stránek udělat, existují ale určité typické okruhy pochybení, kterým se lze vyhnout.

Přehnané ideály. Není nic horšího, než jít do vývoje webového projektu srdcem. Pokud tedy máte neomezené množství času a tvůrčí energie, pak je to možná cesta dobrá, ale v dnešní době se často stane, že v důsledku absence času se obrovský projekt může zvrhnout v nikdy nedokončené dílo. Svůj nápad konzultujte s ostatními vývojáři ještě před jeho započetím. Je vhodné si o svých záměrech promluvit také s běžnými uživateli internetu, kteří na celou tvorbu mohou mít odlišný názor než profesionálové. Rozhodně si nedávejte velké cíle na začátku tvorby. Pokud jsem ještě nezačal vytvářet ani jednoduché stránky, je holý nesmysl doufat, že zvládnu e-shop, vlastní redakční systém, sociální síť nebo zpravodajský portál.

Přínos projektu. Existují projekty, které budete mít chuť realizovat, protože by vám zjednodušily práci. Není ale jisté, zda o danou službu nebo webovou aplikaci budou mít zájem i další uživatelé. Je také možné, že podobná nebo ještě lepší služba již existuje a vy tak skončíte se svým projektem jako chudý příbuzný.

Technologické zázemí. Přemýšlejte, zda máte pro daný projekt vhodné technologické zázemí. Například velké projekty jen těžko zprovozníte na bezplatném webhostingu. K takovým je potřeba vlastní nebo pronajatý server na páteřní síti.

One man show. Pokud tvoříte daný projekt sami, je nutné zvážit, zda na něj máte. Někdy je lepší přivzít k projektu dalšího vývojáře. Zde je ale nutná naprostá souhra, respekt a spolehlivost týmu.

Omezená funkčnost. Řadu dobrých projektů pohřbila taková malichernost, jako omezená funkčnost. V souvislosti s webem je zejména důležité, ať je vaše aplikace bezpečná, neobtěžuje uživatele desítkami reklamních bannerů a ať funguje ve všech standardních prohlížečích. Pokud tyto podmínky nesplníte, pak se vystavujete riziku odlivu uživatelů.

Špatná dostupnost. Tento bod má hodně společného s výběrem webhostingu. Ne vždy je nejlevnější hosting ideálním řešením. Může mít výpadky, špatně interpretovat skriptovací jazyky serveru apod. Také ovšem neplatí, že by předražený webhosting vždy poskytl extrémní přidanou hodnotu.

Grafický paskvil. V neposlední řadě jde také o grafiku. Sólový vývojář webových stránek musí být nejen analytik či programátor, ale také grafik. Jednoduchá grafika realizovaná v Malování nadchne asi jen přívržence obsahové části. Ale i ty může odradit. Na moderních stránkách se vyskytuje mnoho grafických prvků, obrázků, ikon, bannerů a animací.

1.4 Webhosting a FTP připojení

Pro zprovoznění vlastních webových projektů v internetu budete potřebovat několik málo věcí. Jednak jde o doménu, tedy nějakou internetovou adresu, kterou uživatelé zadají do prohlížeče, když se budou chtít na vaše stránky dostat. Dále bude zapotřebí webhosting, kam skripty (coby soubory) uložíte. Ono samotné uložení stránek na webhosting se nejčastěji děje pomocí FTP připojení, takže v neposlední řadě budete muset nainstalovat FTP aplikaci, takzvaného klienta.

1.4.1 Doména aneb adresa stránek

Adresa vašich stránek závisí do značné míry na tom, co si zaplatíte. Pokud chcete zatím jen zkoušet vývoj webových stránek a chcete nějakou zkušební adresu, pak je ideální zvolit nějakou bezplatnou doménu třetí úrovně, která může mít například takovouto podobu: http://nazev.ic.cz. Pokud ale víte, že chcete doménu druhé řádu, tedy lepší adresu, pak si můžete zaplatit například adresu http://www.nazev.cz. Kromě koncovky CZ může mít samo sebou doména i jiné názvy, jako kupříkladu COM, ORG, EU, INFO, BIZ apod. Průměrná cena ročního poplatku za registraci a správu internetové domény činí zhruba 250 Kč. Dostupnost vámi požadovaného názvu domény druhé úrovně si můžete vyzkoušet u některého poskytovatele webhostingu, například na této adrese: https://www.forpsi.com/domain.

Doménu i webhosting lze objednat samostatně jakožto oddělené služby. Toto řešení je ale vhodné spíše pro IT profesionály, neboť zakoupená adresa se musí správně nasměrovat na webhosting, jinak nebudou stránky korektně fungovat. Pokud se na ono směrování příliš necítíte, pak je lepší zakoupit doménu druhé úrovně současně i s hostingem u jednoho poskytovatele, který nasměrování a správnou funkci zajistí.

1.4.2 Výběr webhostingu

Na českém trhu existují desítky či stovky firem, které webhosting nabízí. Porovnávat lze podle ceny, ale nejlépe, když si srovnáte parametry jednotlivých hostingů a nabízených služeb. Kromě toho je občas vhodné prohledat diskusní fóra (k tomu postačí Google) a pročíst si názory uživatelů, jak jsou spokojeni s danou službou. Není totiž opravdu vhodné volit nejlevnější nebo nejdražší variantu.

Co by měl základní webhosting splňovat?

1. Měl by podporovat nejen technologie, které potřebujete při spuštění webových stránek, ale také technologie, které byste mohli potřebovat následně. Samozřejmostí je podpora HTML stránek, určitě vybírejte jen hostingy s podporou skriptovacího jazyka PHP. To je dobrý technologický základ. Nejlépe je, když je v ceně hostingu již od začátku také MySQL databáze.

2. Pro rozsáhlé projekty je důležitý také poskytovaný prostor. Na jednoduché stránky vám musí bohatě postačit 50 MB prostoru, chcete-li ale složitější stránky s objemným obsahem (např. video), tak je vhodnější sáhnout po několika GB alternativě. Hodláte-li hostovat objemné dynamické stránky, pak se zajímejte také o prostor, jenž má vyhrazena MySQL databáze.

3. Ač v dnešní době již asi nenarazíte na webhosting bez FTP připojení, dejte si pro jistotu pozor na fakt, zda webhosting podporuje plnohodnotné FTP. Některé, zejména bezplatné webhostingy podporovaly tzv. WebFTP, což rozhodně není ideální cesta k umisťování a správě HTML souborů.

4. Pokud chcete mít k hostingu také emailové schránky, pak se u provozovatele zajímejte, zda je tato služba v ceně, nebo se za jednotlivé schránky připlácí. Pokud již budete využívat například adresu http://www.firma.cz, pak je ideální mít emailové adresy ve tvaru info@firma.cz apod.

5. Sledujte, jaké garance a dostupnost poskytovatel zajišťuje. Za dlouhodobý výpadek by měl mít zodpovědnost. Také si prostudujte, na jakou technickou podporu máte nárok. Malé a obvykle levnější hostingy například nenabízí možnost telefonické konzultace, jen emailovou cestou. To je ale pro rychlé vyřešení technického problému nedostačující.

Table of Contents

Úvod

O autorovi

1. Internet a základní pojmy

1.1 Několik slov o internetu

1.1.1 Co je to internet

1.1.2 Důležité mezníky ve vývoji internetu

1.1.3 Internetový protokol TCP/IP

1.1.4 Identifikace počítačů v internetu

1.1.5 Protokol HTTP – hypertext

1.1.6 WWW a brouzdání

1.2 Základní pojmy a zkratky

1.3 Filosofie tvorby webových aplikací

1.3.1 Jak postupovat při plánování projektu www stránek

1.3.2 Nejčastější chyby, které pohřbí váš projekt

1.4 Webhosting a FTP připojení

1.4.1 Doména aneb adresa stránek

1.4.2 Výběr webhostingu

1.4.3 FTP protokol

1.4.4 Zkušební bezplatný webhosting

1.5 Struktura souborů a složek

1.5.1 Základní typy souborů

1.5.2 Rozdělení do složek

1.5.3 Zásady a doporučení

1.6 Software potřebný pro vytváření webových projektů

1.6.1 HTML a PHP editory

1.6.2 Grafické aplikace

1.6.3 FTP klient

1.6.4 Internetové prohlížeče

1.6.5 Testovací programy

1.7 Validita a internetové prohlížeče

1.7.1 Validní vs. Invalidní kód

1.7.2 K čemu slouží validace webu?

1.7.3 Testujeme, zda jsou stránky validní

2. Seznámení s technologiemi XHTML a CSS

2.1 Zdrojový kód HTML stránek ve značkách

2.3 Práce s textem

2.5 Využití barevných palet

2.6 Obrázky

3. Praktická tvorba webové stránky

3.2 Příprava prostředí a programů

3.3 Začínáme tvořit

3.6 Integrace CSS stylů do první stránky

3.7 Výsledná první stránka včetně CSS stylu

4. Seznámení s technologiemi PHP a MySQL

4.1 Základní informace o PHP

4.3 Budoucnost se jmenuje PHP 6

4.4 Konfrontace s konkurencí

4.5 Databázový systém MySQL

4.6 Srovnání MySQL s konkurencí

5. Zázemí pro provoz vlastních PHP skriptů

5.1 Vývoj na vlastním počítači

5.2 Vývoj na webhostingu

6. PHP a jeho zapojení do webu

7. Základy strukturálního PHP

7.1 Syntaktické vlastnosti PHP

7.2 Základní práce s řetězci a proměnnými

7.3 Výrazy, konstanty a operátory

7.4 Pole

7.5 Podmínky

7.6 Cykly

7.7 Funkce

8. Propojení PHP a MySQL

8.2 Připojení k MySQL z PHP

8.3 Dotazování databáze a zpracování v PHP

8.4 Základy jazyka SQL

9. Praktické ukázky řešení PHP skriptů

9.2 Zpracování formulářů

9.5 Download a upload souboru na server

9.7 Pokročilá práce s řetězci

10. Objektové programování dynamického webu

11. Typické řešené úlohy v PHP