| Előszó | 15 |
| Az első lépések | 27 |
| A PHP gyökerei | 28 |
| A PHP telepítése, konfigurálása és futtatása | 29 |
| Rendszerkövetelmények | 30 |
| php.ini, a PHP konfigurációs állománya | 30 |
| Tesztgép beállítása | 31 |
| Hálózati kapcsolatok | 31 |
| Hol kezdjük? | 32 |
| A PHP5 futtatása | 32 |
| A PHP5 telepítése Linux-/Apache-platformon | 34 |
| A telepítési módszer kiválasztása | 34 |
| Az Apache beállítása a PHP használatára | 46 |
| A PHP telepítése Windows 2000/Internet Information Server (IIS) platformon | 48 |
| A PHP5 letöltése | 50 |
| A php.ini állomány és a PHP bővítményei | 52 |
| Tesztelés és hibaelhárítás | 56 |
| A PHP konfigurálása | 57 |
| php.ini | 58 |
| PHP-bővítmények | 59 |
| Gyorsítótárazás (caching) | 59 |
| Összefoglalás | 59 |
| Gyakorló feladat | 60 |
| A PHP-programozás alapjai: néhány egyszerű program | 61 |
| Az első PHP-program | 61 |
| Néhány fontos részlet | 63 |
| A PHP-kód működése | 64 |
| Így futnak az internetes PHP-programok | 67 |
| Webes kommunikáció: internetprotokollok és a HTTP | 68 |
| TCP/IP | 69 |
| A HTTP protokoll | 70 |
| Változók használata a PHP-ben | 75 |
| Amit a változók létrehozásáról tudni érdemes | 75 |
| Konstansdefiníciók | 81 |
| Operátorok és kifejezések | 81 |
| PHP-operátorok | 81 |
| PHP-kifejezések | 82 |
| Operátortípusok | 83 |
| Tömbök | 97 |
| Összefoglalás | 101 |
| Gyakorló feladatok | 102 |
| PHP, HTML és az állapotkezelés | 103 |
| Bevezetés a HTML nyelvbe | 103 |
| A HTML dokumentumtípus-definíció (DTD) | 105 |
| HTML-elemek: form és input | 106 |
| PHP- és HTML-adatok elérése | 109 |
| Előre definiált változók | 109 |
| HTTP-kérések és -válaszok változói | 111 |
| Szuperglobális tömbök | 112 |
| Linkek | 115 |
| Lekérdezősztringek | 116 |
| HTML-űrlapok | 117 |
| HTML-űrlapok elemei | 118 |
| HTML-űrlapelemzők (-vezérlők) és a PHP | 124 |
| Az állapotkezelés alapelve | 156 |
| Az állapot karbantartása | 157 |
| A PHP beépített munkafolyamatai | 166 |
| Összefoglalás | 171 |
| Gyakorló feladat | 171 |
| Elágazások, ciklusok és tömbök | 173 |
| PHP-programlogika tervezése | 174 |
| Problémafelvetés | 174 |
| Pszeudokód írása | 175 |
| Kétértékű Boole-logika | 179 |
| Feltételes utasítások (elágazások) | 180 |
| Példa elágazásra | 181 |
| Az if utazás | 194 |
| A switch utasítás | 200 |
| Ciklusok és tömbök | 200 |
| Ciklusok | |
| Tömbök | 217 |
| Összefoglalás | 244 |
| Gyakorló feladat | 245 |
| Írjunk erős és ellenálló programkódot! | 247 |
| Tesztelés és hibakeresés | 248 |
| Programvégrehajtást meghiúsító értékek | 248 |
| Alapvető hibatípusok | 250 |
| PHP-szkriptek hibakeresése | 250 |
| PHP-hibaüzenetek értelmezése | 251 |
| Szintaktikai hibák | 252 |
| Logikai hibák | 255 |
| Futásidejű hibák | 256 |
| Hibakeresés és -kezelés a PHP5-ben | 261 |
| Belső információk védelme a megjelenítéstől | 261 |
| Testre szabható hibakereső eszközök | 262 |
| Űrlapok ellenőrzése | 263 |
| Az exit utasítás használata | 264 |
| Sztringellenőrzés és a reguláris kifejezések | 270 |
| Adatbejegyzések ellenőrzése | 280 |
| Reguláris kifejezések alkalmazása fájlútvonal-paraméterek ellenőrzésére | 286 |
| Hibák "kíméletes" kezelése | 288 |
| A PHP hibakezelési beállításai | 289 |
| A PHP5 újítása: try/catch blokkok | 290 |
| Összefoglalás | 298 |
| Gyakorló feladat | 299 |
| Haladóknak: írjunk magas minőségű programkódot! | 300 |
| A programfejlesztés megtervezése | 301 |
| Formális szoftverfejlesztési folyamatok | 301 |
| Az elkészült kód optimalizálása | 304 |
| Programozási szabványok használata | 305 |
| Felhasználói függvények készítése PHP-ben | 308 |
| A függvények szerkezete | 308 |
| Kapcsolófüggvények | 316 |
| Értékek átadása függvények számára | 318 |
| Változók hatásköre | 320 |
| Globális és lokális változók | 321 |
| Statikus függvényváltozók létrehozása | 322 |
| Függvények beágyazása | 326 |
| Rekurzív függvények | 326 |
| Az include és a require utasítás | 329 |
| A fájlok beillesztésének buktatói | 332 |
| Összefoglalás | 332 |
| Fájlok és könyvtárak | 334 |
| Fájlok és könyvtárak kezelése | 335 |
| Fájlműveletek | 336 |
| Állományok megnyitása és bezáráa | 337 |
| Állományinformációk lekérdezése | 341 |
| Fájlok írása és olvasása | 342 |
| Fájlokban tárolt karakterek írása és olvasása | 347 |
| Teljes állományok beolvasása | 350 |
| Állományadatok véletlenszerű elérése | 353 |
| Fájlinformációk lekérdezése | 358 |
| Idővel kapcsolatos fájltulajdonságok | 360 |
| Tulajdonosi és állományelérési jogosultságok | 363 |
| Az is_dir() és az is_file() függvény | 366 |
| Saját állományok kezelése | 370 |
| Állományok nevének és elérési útvonalának kiválasztása | 370 |
| Fájlok másolása, átnevezése és törlése | 370 |
| Könyvtárak kezelése | 373 |
| Egyéb könyvtárkezelő függvények | 376 |
| Könyvtárstruktúrák bejárása | 377 |
| Könyvtárböngésző készítése | 378 |
| Készítsünk szövegszerkesztőt! | 385 |
| Állományok feltöltése | 392 |
| Összefoglalás | 398 |
| Gyakorló feladat | 398 |
| XML | 399 |
| Mi fán terem az XML? | 400 |
| Az XML-dokumentumok felépítése | 401 |
| Az XML-dokumentumok fő részei | 402 |
| Jól formázott XML-dokumentumok | 403 |
| XML-elemek és -attribútumok | 405 |
| Érvényes XML-dokumentumok: DTD-definíciók és XML-sémák | 405 |
| Webe szolgáltatáosk | 410 |
| 2PHP és XML | 411 |
| A PHP4 XML-kezelő függvényei | 412 |
| XML-elemzők | 419 |
| A dokumentumobjektum-modell (DOM) | 423 |
| A PHP5 XML-kezelő függvényei | 424 |
| A simpleXML-bővítmény | 424 |
| Értékek módosítása a simple XML-bővítménnyel | 428 |
| Összefoglalás | 432 |
| Gyakorló feladat | 432 |
| Bevezetés az adatbázisok és az SQL használatába | 433 |
| Adatok tárolása | 434 |
| Adatbázisok és megint csak adatbáziksok...! | 435 |
| Adatbázis-architektúrák | 436 |
| Melyik adatbázis-kezelőt válasszuk? | 438 |
| A MySQL telepítése és beállítása | 439 |
| telepítés Windows-platformon | 439 |
| Telepítés Linus-platformon | 440 |
| A MySQL konfigurálása | 443 |
| Relációs adatbázisok | 444 |
| Normalizálás | 446 |
| Kommunikáció adatbázisokkal az SQL segítségével | 450 |
| A MySQL csodálatos világa - dióhéjban | 457 |
| A mysql kliensprogram indítása | 457 |
| A használni kívánt adatbázis kijelölése | 458 |
| Adatbázistáblák használata | 459 |
| Adatok megtekintése az SQL segítségével | 461 |
| Adatok kezelése az adatbázisban | 462 |
| A GRANT és a REVOKE parancs használata | 464 |
| Csatlakozás a MySQL adatbázis-kezelőhöz a PHP-programokban | 466 |
| A PHP-MySQL csatlakozás kérdései | 467 |
| Alapvető adatbázis-csatlakozási függvények | 467 |
| Szerverhibák kezelése | 472 |
| Adatbázisok és - táblák készítése a MySQL használatával | 477 |
| Mintaadatbázis és -táblák készítése PHP-vel | 482 |
| Táblák módosítása | 487 |
| Adatok beillesztése adatbázis-táblákba | 489 |
| Összefoglalás | 493 |
| Adatok lekérdezése PHP-vel MySQL adatbázisokból | 495 |
| Adatok lekérdezése a PHP segítségével | 495 |
| Adatok lehívására szolgáló SQL-utasítások | 499 |
| Szerverfüggvények | 499 |
| Adatmezők visszakeresése és lehívása | 500 |
| Összesítések készítése | 507 |
| Még összetettebb lekérdezési feladatok | 508 |
| Részekből egész: összetett példa | 512 |
| Az altalanos_ab.inc fájl tartalma | 513 |
| A felh_bongeszo.php állomány tartalma | 516 |
| A felhasználó-böngésző használata | 524 |
| Összefoglalás | 525 |
| Adatok kezelése PHP-vel MySQL adatbázisokban | 527 |
| Rekordok beillesztése a PHP segítségével | 527 |
| Különleges karakterek | 528 |
| A htmlspecialchars() függvény | 529 |
| Rekordok módosítása és törlése adatbázistáblákban | 530 |
| Dátum és idő típusú mezők kezelése | 533 |
| Információk lekérdezése adatbázistáblákról | 537 |
| Az ENUM opciók és a mezők alapértelmezett értékei | 543 |
| Felhasználói regisztrációt megvalósító szkript készítése | 548 |
| A regisztracio.php program | 548 |
| A végrhajtandó művelet kiválasztása | 554 |
| Felhasználói oldalhozzáférések naplózását megvalósító szkript készítése | 555 |
| A felh_hitelesites.php program | 556 |
| A hozzaf_naplo_kezelo.php program | 559 |
| Felhasználókezelő alkalmazás készítése | 564 |
| A felh_kezelo.php program | 564 |
| A végrehajtandó művelet kiválasztása | 573 |
| Összefoglalás | 574 |
| Gyakorló feladatok | 575 |
| Bevezetés az objektumorientált programozásba | 577 |
| Az objektumorientált programozás (OOP) lényege | 577 |
| Az OOP alapelveiről dióhéjban | 580 |
| Osztályok | 580 |
| Objektumok | 581 |
| Öröklés | 599 |
| Interfészek | 611 |
| Egységbezárás | 614 |
| OO-változások a PHP5-ben | 616 |
| Összefoglalás | 617 |
| Gyakorló feladatok | 618 |
| Az UML modellezőnyelv és az osztályok használata | 619 |
| Az egységesített modellezőnyelv (UML) | 619 |
| Érvek az UML használata mellett | 620 |
| UML-szoftverek | 621 |
| Osztálydiagramok | 622 |
| Címtárkezelő alkalmazás készítése | 623 |
| A címtárkezelő UML-diagramjai | 623 |
| Egyéb hasznos UML-diagramok | 629 |
| Entitas osztály létrehozása | 632 |
| Részkből egész: a működő program | 639 |
| A TulajdonsagObjektum osztály | 639 |
| A különböző típusú elérhetőségeket definiáló osztályok | 642 |
| Az AdatKezelo osztály | 647 |
| Az Entitas, Egyen és Szervezet osztályról | 650 |
| A működő rendszer használata | 657 |
| Összefoglalás | 659 |
| PEAR | 660 |
| Mit takar a PEAR rövidítés? | 661 |
| A PEAR felépítése | 661 |
| A PEAR-szabványok áttekintése | 664 |
| PEAR-csomagok telepítése | 667 |
| Ismerkedés a pear.php-net webhellyel | 667 |
| A PEAR osztályi és alkalmazásai | 668 |
| A PEAR csomagkezelő telepítése és használata | 668 |
| PEAR-csomagok használata | 682 |
| Alkalmazásépítés mindössze egy PEAR-komponensből | 682 |
| Rendellenes működés? | 688 |
| Alkalmazásépítés két PEAR-komponens felhasználásával | 689 |
| Kétszintű, két komponensből álló PEAR-alkalmazás készítése | 693 |
| Összefoglalás | 706 |
| PHP5 és az elektronikus levelezés | 708 |
| Az elektronikus levelezés hátteréről | 708 |
| Internetes levelezőprotokollok | 709 |
| Az e-mail üzenetek szerkezete | 710 |
| Elektronikus levél küldése PHP-vel | 711 |
| A mail() függvény használata | 713 |
| Többcélú internetes levelezési bővítmények (MIME) | 715 |
| A PEAR levelezést támogató programkönyvtárai | 718 |
| Példa: egyszerű levélkezelő PHP-alkalmazás | 718 |
| Összefoglalás | 728 |
| Gyakorló feladat | 728 |
| Grafikák készítése | 729 |
| A számítógépes grafikai alapjai | 730 |
| Színelmélet | 730 |
| Koordináta-rendszerek | 730 |
| Képtípusok | 732 |
| Raszterképek kezelése | 733 |
| Új kép készítése | 733 |
| Színek kiosztása | 734 |
| Alapvető rajzolófüggvények | 735 |
| Raszterképek feldolgozása | 745 |
| Meglévő képek megnyitása | 745 |
| Vízjelek alkalmazása | 748 |
| Vázlatképek készítése | 753 |
| Szövegfeliratok használata képeken | 756 |
| Egyszerű szövegfeliratok elhelyezése képeken | 756 |
| True Type betűkészletek használata | 759 |
| Összefoglalás | 761 |
| Gyakorló feladatok | 762 |
| Esettanulmány: PHP naplózóágens | 763 |
| Miért épp naplózóágens? | 764 |
| Smarty | 765 |
| PHPUnit | 771 |
| A naplózóágens megtervezése | 773 |
| A webhelynaplok.ab adatbázis | 775 |
| A naplózóágens leképzése UML-lel | 777 |
| A terv kódolása | 783 |
| Vegyes szkriptek | 783 |
| Adatkezelő szkriptek | 788 |
| Ellenőrző és hibakezelő szkriptek | 806 |
| Megjelenítést végző szkriptek és sablonok | 812 |
| Az alkalmazás tesztelése | 816 |
| A naplózóágens használata | 828 |
| felh_naplo.php | 828 |
| A naplózóágens megtekintése "munka közben" | 829 |
| Összefoglalás | 832 |
| A gyakorló feladatok megoldásai | 833 |
| PHP függvényreferencia | 862 |
| Az SQLITE használata | 944 |
| ODBC | 964 |
| PHP CLI | 979 |
| A PHP5 konfigurálása | 991 |
| Tárgymutató | 1017 |