K1479_novy.qxd
16.5.2007
15:31
StrÆnka 3
Obsah Úvod
11
1. Webový server, instalace PHP a MySQL
13
Princip funkce webové aplikace PHP Principy tvorby a správy webového serveru a vývojářského počítače Co je nezbytné k instalaci místního vývojářského počítače
Instalace webového serveru Instalace IIS v operačním systému Windows Vista Instalace služby IIS v systémech Windows 2003/2000/XP
Instalace skriptovacího systému PHP Zend Engine Oracle, IBM... Instalace databázového serveru MySQL Instalace kompletního balíku WAMP První skript v jazyce PHP, oživení řetězce „webový server – PHP – databázový server“ Umístění webové aplikace do virtuálního adresáře
2. Základy jazyka PHP Výpis textu Proměnné, řetězce, datum a čas Upozornění na časté příčiny chyb Doporučení týkající se názvů proměnných Jak zjistit existenci proměnné Jak zjistit typ proměnné Odstranění proměnné
Textové řetězce Různé konvence pro definici řetězců
13 14 14 15
15 15 15
17 20 24 29 31 33
39 39 41 42 42 43 43 45
45 45
K1479_novy.qxd
4
16.5.2007
15:31
StrÆnka 4
Obsah Nahrazování podřetězců v řetězci Zarovnávání textu
Základní funkce pro práci s textovými řetězci Jak zjistit délku řetězce Nalezení textu v řetězci Výběr podřetězce z textového řetězce
Základní programové struktury Podmínky Cykly Násilné ukončení zpracování kódu v jazyce PHP
48 49
51 51 51 52
52 53 54 55
Regulární výrazy Ošetření výjimek
56 60
3. Funkce jazyka PHP
63
Tvorba a užití funkcí Funkce s proměnným počtem argumentů Předčasné ukončení funkce příkazem return Implicitní hodnoty argumentů Dynamická tvorba funkcí
Funkce implementované v jazyce PHP Tvorba pseudonáhodného čísla
4. Webové formuláře Zadávání údajů do webových formulářů a jejich zpracování Nejjednodušší příklad pro zadávání a zpracování údajů Registrace globálních proměnných Nastavení v konfiguračním souboru php.ini Nastavení parametrů pro výpis chyb Předávání parametrů při neregistrovaných globálních proměnných Jak využívat pole $_REQUEST, $_POST a $_GET při předávání parametrů bez proměnných Souvislý versus fragmentovaný kód PHP na stránce HTML Plovoucí nápověda
Validace zadaných údajů Nejlepší validací je prevence Jak zadané údaje ověřovat na straně klienta
63 64 65 66 66
66 67
69 69 69 73 74 74 76 77 77 79 82
83 84 86
K1479_novy.qxd
16.5.2007
15:31
StrÆnka 5
Obsah
5. Práce s datem a časem Jak zjistit aktuální datum a čas Výpis hodnot data a času Formátovaný výpis data a času Výpis data a času pomocí regulárních výrazů
Ověření platnosti zadaného data nebo času Aritmetika časových údajů (rozdíl mezi dvěma daty, den v týdnu, měsíc v roce) Časová pásma, letní čas
6. Ukládání údajů mimo databázi Pole a záznamy Procházení prvků pole Jak přiřadit hodnoty jednotlivým prvkům pole Změna velikosti pole Mazání prvků pole Naplnění pole z webového formuláře Předdefinovaná pole systémových proměnných serveru
Práce s adresáři a soubory na serveru a u klienta Jak vložit soubor do kódu v jazyce PHP – předávání parametrů
Práce se soubory v adresářích Jak ověřit existenci souboru Test, zda je testovaný objekt souborem, nebo adresářem Výpis obsahu adresáře
Práce s obsahem souboru Otevření souboru Čtení ze souboru Čtení textového souboru po řádcích Zápis do souborů Zápis a čtení souborů ve skriptovacím systému PHP5
Odesílání souborů na server Odeslání obrázků na server a jejich zobrazení
7. Specifika webových aplikací Využití záhlaví stránky v protokolu HTTP Přesměrování stránky
89 89 92 92 95
98 99 101
105 105 106 106 109 110 111 113
114 115
116 116 117 117
118 118 120 121 121 122
122 125
129 129 129
5
K1479_novy.qxd
6
16.5.2007
15:31
StrÆnka 6
Obsah
Soubory cookie Počitadlo přístupů klienta na stránku Jak identifikovat uživatele aplikace
Ověřování a autorizace uživatelů Jak šifrovat heslo
Jak odeslat elektronickou zprávu z kódu v jazyce PHP
8. Zohlednění národních zvyklostí Kódování znaků Nastavení národních zvyklostí Vícejazyčné aplikace v jazyce PHP
9. Grafika na webových stránkách Grafy HTML Grafická knihovna GD Jak do webové stránky vložit obrázek generovaný pomocí kódu PHP Kreslení základních geometrických obrazců Kreslení textu Kreslení centrovaného textu Kreslení zalamovaného textu Jak zjistit informace o obrázku v souboru Převod obrázku do jiného grafického formátu Kreslení sloupcových grafů Univerzální řešení grafu
10. OOP – hlavní pilíř stavebnicových projektů Instalace objektové knihovny PEAR Základy objektově orientovaného programování Třída, konstruktor, členská proměnná, metoda Zapouzdření Implicitní hodnoty argumentů
Tvorba a odstraňování objektů (konstruktor a destruktor) Dědění
130 132 133
135 135
136
139 139 141 142
145 145 147 149 152 153 154 156 158 158 159 160
163 164 164 165 166 169
170 172
K1479_novy.qxd
16.5.2007
15:31
StrÆnka 7
Obsah
11. Úvod do databází Úvod do jazyka SQL Tvorba databázové tabulky Jak naplnit tabulku daty Optimalizace návrhu databázové tabulky Výpis záznamů z databázové tabulky Výpis záznamů z několika tabulek
12. Databázový server MySQL Klientská konzolová aplikace Jak zjistit základní informace o serveru, databázích a tabulkách
Nové vlastnosti databázové platformy MySQL 5.x Transakce Pohledy Kurzory Uložené procedury Triggery (spouště)
Funkce pro spolupráci skriptovacího prostředí PHP s databázovým serverem MySQL Konfigurace skriptovacího prostředí PHP pro spolupráci s databázovým serverem Možnost připojení k databázím serveru MySQL Jak ošetřit chyby při spojení s databázovým serverem Tvorba funkce pro připojení k databázi Funkce pro odesílání příkazů SQL Funkce pro načítání výsledné sady Jak využít automaticky inkrementovaných jedinečných identifikátorů Funkce pro zjišování informací týkajících se vykonání dotazu SQL Funkce pro zjišování aktuálních informací o databázi Ošetření chyb
Příklad výpisu obsahu databázové tabulky v jazyce PHP Univerzální dialog pro sestavení dotazu SQL Sestavení počátku výběrového dotazu Sestavení klauzule WHERE Setřídění sloupců – klauzule ORDER BY Zadávání kalendářního data a času
Vzdálená správa databázového serveru MySQL – phpMyAdmin Záložka Struktura Záložka SQL
175 176 176 178 180 181 187
189 189 190
193 193 195 196 197 198
199 199 199 200 201 203 204 205 208 209 212 213
214 215 217 220 224 226
229 232 234
7
K1479_novy.qxd
8
16.5.2007
15:31
StrÆnka 8
Obsah Záložka Vyhledávání Export údajů Tvorba nové databázové tabulky
13. Databázový stroj SQLite Tvorba databáze SQLite Otevření databáze Tvorba databázové tabulky a ukládání dat Jak zadávat posloupnost příkazů SQL do databáze SQLite Jak zjistit počet záznamů ovlivněných posledním příkazem SQL Tvorba dočasné databáze SQLite v paměti Výběr záznamů z databáze SQLite Výpis záznamů z databáze SQLite do tabulky HTML
14. Volně dostupné verze komerčních databázových serverů Volně šiřitelná verze Oracle Database 10g Express Edition Instalace Oracle Database 10g Express Edition Spuštění nástroje pro správu Oracle Database 10g Express Edition Odemknutí a zpřístupnění cvičného schématu PHP Zend Core for Oracle Nativní přístup aplikací PHP pro databázovou platformu Oracle
Volně dostupná verze IBM DB2 9.0 Express Edition Instalace IBM DB2 Express Edition Funkce PHP pro spolupráci s databázovou platformou IBM DB2
15. Výměna dat pomocí XML Dokument XML Jak načíst dokument XML ze souboru a jak ho zobrazit v prohlížeči Generování dokumentu XML pomocí kódu v jazyce PHP
Zpracování dokumentu XML – syntaktická analýza Načtení uzlů dokumentu XML do objektového modelu DOM Zpracování uzlů dokumentu XML pomocí rozhraní SAX Transformace XSLT Rozhraní SimpleXML
234 234 237
241 242 242 243 245 245 247 247 248
251 251 252 254 254 257 257
260 261 264
267 268 269 269 270
272 272 274 277 279
K1479_novy.qxd
16.5.2007
15:31
StrÆnka 9
Obsah
16. Komplexní řešení: portál Počitadlo a statistika přístupů na webové stránky Princip funkce počitadla Návrh databázové části projektu Návrh skriptů Výpis statistiky návštěvnosti Vykreslení grafu návštěvnosti
Přihlášení uživatele – ověřování Návrh databázové části aplikace
Publikační portál na platformě PHP a MySQL Koncepční návrh modelu řešení Logický a fyzický model řešení Propojení aplikace s databází Zobrazení článků
Redakční systém časopisu Odhlášení redaktora Vložení nového článku Editace článku Vymazání článku ze systému
Rejstřík
281 281 281 282 283 285 285
287 287
290 290 292 297 298
303 311 311 314 316
317
9