főoldal | számítástechnika | PHP és MySQL webfejlesztőknek - Hogyan építsünk webáruházat

PHP és MySQL webfejlesztőknek - Hogyan építsünk webáruházat

Eredeti cím: PHP and MySQL Web Development (4th Edition)
Kiadás dátuma: 2010. november 15.
ISBN: 9789639929135
Méret: 192x255
Oldalszám: 672
Nyelv: magyar
Súly: 1,4 kg

Online rendelés (Az általunk üzemeltetett InterBook áruházban)

A PHP és a MySQL népszerű, nyílt forráskódú technológia, amelyek segítségével rövid idő alatt fejleszthetők adatbázis-vezérelt webes alkalmazások. A PHP igen hatékony programozási nyelv, használatával funkciókban gazdag webes megoldásokat hozhatnak létre a fejlesztők. A MySQL pedig kiválóan integrálható a PHP-vel, ideális, gyors és megbízható adatbázis a dinamikus, internetalapú alkalmazásokhoz.
A könyvből kiderül, hogyan lehet ezen eszközök együttes használatával hatékony és interaktív webes alkalmazásokat előállítani. Jól érthetően átveszi a PHP nyelv alapjait, elmagyarázza, hogyan tudunk MySQL adatbázist létrehozni és dolgozni vele, majd bemutatja, miként lehet PHP segítségével kapcsolatba lépni az adatbázissal és a kiszolgálóval.
A gyakorlati megközelítést követő kiadvány számos példával szemlélteti az olyan gyakran előforduló feladatokat, mint a felhasználók hitelesítése, online bevásárlókosár fejlesztése, PDF dokumentumok és képek dinamikus előállítása, e-mailek küldése és kezelése, webes fórum fejlesztése, Web Services felülethez kapcsolódás XML segítségével és Ajax-alapú interaktivitást nyújtó Web 2.0-s alkalmazások fejlesztése.
A PHP és MySQL webfejlesztőknek című kötet a mű előző kiadásának frissített, átdolgozott és kibővített változata: a PHP 5. és 5.3. verziója közötti fejlesztéseket, illetve a MySQL 5.1 verziójában bevezetett új funkciókat is tartalmazza.

Internetről letölthető példafájlok.

"PHP-vel és MySQL-lel dolgozó fejlesztők számára nélkülözhetetlen kiadvány. Nagyon ajánlott mindenkinek" - The Internet Writing Journal.

"Kiváló könyv a PHP gyors elsajátítására, amely a MySQL-t is átfogóan bemutatja" - WebDynamic.

Luke Welling és Laura Thomson több mint egy éve dolgoznak PHP-vel és MySQL-lel, illetve írnak róluk. Rendszeresen előadói a nyílt forráskódú fejlesztéssel foglalkozó konferenciáknak. Luke jelenleg webes alkalmazástervező az OmniTI-nál, Lara vezető szoftvermérnök a Mozilla Corporation webes csapatában.

Online rendelés (Az általunk üzemeltetett InterBook áruházban)

 


Tartalomjegyzék

Bevezetés
Miért érdemes elolvasni a könyvet? 1
Mit tanulhatunk a könyvből? 1
Mi a PHP? 2
Mi a MySQL? 2
Miért használjunk PHP-t és MySQL-t? 2
A PHP legfőbb erősségei 3
Melyek a PHP 5 újdonságai? 4
A PHP 5.3 főbb jellemzői 5
A MySQL legfőbb erősségei 5
Támogatás elérhetősége 6
Melyek a MySQL 5 újdonságai? 6
Hogyan épül fel a könyv? 7
Végezetül 7
I. rész
A PHP használata 9
1. fejezet
PHP gyorstalpaló 11
Kezdés előtt: a PHP elérése 11
Mintaalkalmazás létrehozása: Bob autóalkatrészek 12
Rendelési űrlap létrehozása 12
Az űrlap feldolgozása 13
PHP beágyazása HTML-be 13
PHP címkék 14
PHP utasítások 15
Fehérköz karakterek 15
Megjegyzések 15
Dinamikus tartalom hozzáadása 16
Függvényhívások 16
A date() függvény használata 17
Az űrlapváltozók elérése 17
Rövid, közepes és hosszú változók 17
Karakterláncok összefűzése 19
Változók és literálok 19
Az azonosítók 20
Változótípusok 20
A PHP adattípusai 20
Típuserősség foka 20
Típuskényszerítés 21
Változó változók 21
Állandók deklarálása és használata 21
Változók hatóköre 22
Műveleti jelek használata 22
Aritmetikai műveleti jelek 23
Karakterláncokon alkalmazható műveleti jelek 23
Értékadó műveleti jelek 23
Összehasonlító műveleti jelek 25
Logikai műveleti jelek 26
Bitműveleti jelek 26
Egyéb műveleti jelek 27
Az űrlap végösszegének kiszámítása 28
Műveletek elsőbbségi sorrendje és
a csoportosíthatóság 29
Változókhoz kapcsolódó függvények 30
Változók típusának ellenőrzése és beállítása 30
Változók állapotának ellenőrzése 31
Változók típuskonverziója 31
Döntéshozatal feltételes utasításokkal 31
Kódblokkok 32
A különböző feltételes utasítások összehasonlítása 34
Műveletek ismétlése iterációval 35
Kiugrás vezérlési szerkezetből vagy kódból 37
Alternatív vezérlési szerkezetek alkalmazása 38
A declare szerkezet használata 38
Hogyan tovább? 38
2. fejezet
Adatok tárolása és visszakeresése 39
Adatok elmentése későbbi használat céljából 39
Bob megrendeléseinek eltárolása és visszakeresése 39
Fájlok feldolgozása 40
Fájl megnyitása 40
A megfelelő megnyitási mód kiválasztása 40
Fájl megnyitása az fopen() függvénnyel 41
Fájlok megnyitása FTP-n vagy HTTP-n keresztül 42
Fájlmegnyitási problémák kezelése 43
Fájlba írás 44
Az fwrite() függvény paraméterei 44
Fájlformátumok 44
Fájl bezárása 45
Olvasás fájlból 47
Fájl megnyitása olvasásra: fopen() 48
Ahol meg kell állnunk: feof() 48
Beolvasás soronként: fgets(), fgetss() és fgetcsv() 48
A teljes fájl beolvasása: readfile(), fpassthru()
és file() 49
Karakter beolvasása: fgetc() 49
Tetszőleges mennyiségű adat beolvasása: fread() 50
Egyéb hasznos fájlfüggvények 50
Fájl meglétének ellenőrzése: file_exists() 50
Fájlméret meghatározása: filesize() 50
Fájl törlése: unlink() 50
Fájlon belüli navigálás: rewind(), fseek() és ftell() 50
Fájlok zárolása 51
Egy jobb módszer: adatbázis-kezelő rendszerek 52
Egyszerű fájlok használata esetén jelentkező problémák 52
Hogyan oldják meg a relációs adatbázis-kezelő
rendszerek ezeket a problémákat? 52
További olvasnivaló 53
Hogyan tovább? 53
3. fejezet
Tömbök használata 55
Mit nevezünk tömbnek? 55
Numerikusan indexelt tömbök 56
Numerikusan indexelt tömbök létrehozása 56
Tömb tartalmának elérése 56
Tömbelemek elérése ciklusokkal 57
Nem numerikusan indexelt tömbök 57
Tömb inicializálása 57
Tömbelemek elérése 57
Ciklusok használata 58
Tömbműveleti jelek 59
Többdimenziós tömbök 59
Tömbök rendezése 62
A sort() függvény használata 62
Tömbök rendezése asort() és ksort()
függvényekkel 62
Fordított rendezés 63
Többdimenziós tömbök rendezése 63
Felhasználó által meghatározott rendezés 63
Fordított sorrendbe történő felhasználói rendezés 64
Tömbök átrendezése 64
A shuffle() függvény használata 65
Az array_reverse() függvény használata 66
Tömbök feltöltése fájlokból 66
További tömbkezelési eljárások 68
Tömbön belüli navigálás: each(), current(), reset(), end(), next(), pos() és prev() függvény 69
Függvény alkalmazása tömb minden egyes elemére: array_walk() 69
Tömbelemek számlálása: count(), sizeof() és array_count_values() függvény 70
Tömbök átalakítása skaláris változókká: extract() 70
További olvasnivaló 71
Hogyan tovább? 71
4. fejezet
Karakterláncok kezelése és reguláris kifejezések 73
Mintaalkalmazás létrehozása: intelligens üzenetküldő űrlap 73
Karakterláncok formázása 75
Karakterláncok megvágása: trim(), ltrim() és rtrim() függvény 75
Karakterláncok formázása megjelenítés céljából 75
Tárolni kívánt karakterláncok formázása:
addslashes() és stripslashes() függvény 78
Karakterláncok egyesítése és felosztása sztringkezelő függvényekkel 79
Az explode(), implode() és join() függvény
használata 79
Az strtok() függvény használata 79
A substr() függvény használata 80
Karakterláncok összehasonlítása 80
Karakterláncok sorba rendezése: strcmp(), strcasecmp() és strnatcmp() függvény 80
Karakterlánc hosszának megállapítása az strlen() függvénnyel 81
Részsztringek keresése és cseréje sztringkezelő függvényekkel 81
Karakterláncok keresése karakterláncban: strstr(), strchr(), strrchr() és
stristr() függvény 82
Részsztring pozíciójának megkeresése: strpos() és strrpos() 82
Részsztringek cseréje: str_replace() és substr_replace() függvény 83
Ismerkedés a reguláris kifejezésekkel 83
Az alapok 84
Karakterkészletek és -osztályok 84
Ismétlődés 85
Részkifejezések 85
Számolt részkifejezések 85
Karakterlánc elejéhez vagy végéhez rögzítés 85
Ágaztatás 86
Literális különleges karakterekhez illesztés 86
A különleges karakterek áttekintése 86
Az eddig tanultak alkalmazása az intelligens űrlapban 87
Részsztringek keresése reguláris kifejezésekkel 87
Részsztringek cseréje reguláris kifejezésekkel 88
Karakterláncok szétbontása reguláris kifejezésekkel 88
További olvasnivaló 88
Hogyan tovább? 88
5. fejezet
Kód többszöri felhasználása és függvényírás 89
Kód többszöri felhasználásának előnyei 89
Költség 89
Megbízhatóság 89
Egységesség 90
A require() és az include() utasítás használata 90
Fájlnévkiterjesztések és a require() utasítás 90
A require() utasítás használata weboldalsablonokra 91
Az auto_prepend_file és az auto_append_file beállítás használata 95
Függvények használata PHP-ben 96
Függvényhívás 96
Nem létező függvény hívása 97
Kis- és nagybetűk megkülönböztetése
függvénynevekben 97
Saját függvények definiálása 97
Függvények alapszerkezete 98
Függvényeink elnevezése 98
Paraméterek használata 99
A hatókör fogalma 100
Cím és érték szerinti paraméterátadás 102
A return kulcsszó használata 103
Értékvisszaadás függvényekből 103
Rekurzió megvalósítása 104
Névterek 105
További olvasnivaló 105
Hogyan tovább? 106
6. fejezet
Objektumorientált PHP 107
Ismerkedés az objektumorientált programozás
fogalmaival 107
Osztályok és objektumok 107
Többalakúság 108
Öröklődés 108
Osztályok, attribútumok és metódusok létrehozása
PHP-ben 109
Osztályszerkezet 109
Konstruktorok 109
Destruktorok 110
Osztálypéldányok létrehozása 110
Osztályattribútumok használata 110
Hozzáférés-szabályozás private és public
kulcsszóval 112
Osztálymetódusok hívása 112
Öröklődés megvalósítása PHP-ben 113
Láthatóság szabályozása öröklődés esetén a private
és a protected kulcsszóval 113
Felülírás 114
Öröklődés és felülírás megakadályozása a final
kulcsszóval 115
A többszörös öröklődés 116
Interfészek megvalósítása 116
Osztálytervezés 117
Az osztály kódjának megírása 117
Haladó objektumorientált funkciók PHP-ben 124
Osztályon belüli konstansok használata 124
Statikus metódusok létrehozása 124
Osztálytípus ellenőrzése és típusjelzés 125
Késői statikus kötések 125
Objektumok klónozása 126
Elvont osztályok használata 126
Metódusok többszörös definiálása a __call() metódussal 126
Az __autoload() függvény használata 127
Iterátorok és iteráció létrehozása 127
Osztályaink átalakítása karakterláncokká 129
A Reflection API használata 129
Hogyan tovább? 130
7. fejezet
Hiba- és kivételkezelés 131
Kivételkezelési fogalmak 131
Az Exception osztály 132
Felhasználó által meghatározott kivételek 133
Kivételek Bob autóalkatrész-értékesítő alkalmazásában 135
Kivételek és a PHP további hibakezelő
mechanizmusai 138
További olvasnivaló 138
Hogyan tovább? 138
II. rész
A MySQL használata 139
8. fejezet
Webes adatbázis megtervezése 141
Relációs adatbázissal kapcsolatos fogalmak 141
Táblák 141
Oszlopok 142
Sorok 142
Értékek 142
Kulcsok 142
Sémák 143
Kapcsolatok 143
Webes adatbázis megtervezése 144
Gondoljuk végig a modellezett, valós világbeli objektumokat! 144
Redundáns adatok tárolásának elkerülése 144
Atomi oszlopértékek használata 145
Válasszunk értelmes kulcsokat! 146
Gondoljuk végig, mit szeretnénk az adatbázisból megtudni! 146
Kerüljük a sok üres tulajdonságot tartalmazó
kialakítást! 146
Táblatípusok összefoglalása 147
Webes adatbázis architektúrája 147
További olvasnivaló 148
Hogyan tovább? 148
9. fejezet
Webes adatbázis létrehozása 149
A MySQL monitor használata 150
Bejelentkezés MySQL-be 150
Adatbázisok és felhasználók létrehozása 151
Felhasználók és jogosultságok beállítása 151
A MySQL jogosultsági rendszerének bemutatása 151
A legkisebb jogosultság elve 151
Felhasználó beállítása: a GRANT parancs 151
Jogosultságok típusai és szintjei 152
A REVOKE parancs 154
Példák a GRANT és a REVOKE használatára 154
Webes felhasználó beállítása 155
A megfelelő adatbázis használata 155
Adatbázistáblák létrehozása 156
A többi kulcsszó jelentésének megismerése 157
Az oszloptípusok 157
Az adatbázis megtekintése a SHOW és a DESCRIBE paranccsal 159
Indexek létrehozása 159
MySQL azonosítók 160
Oszlopok adattípusainak kiválasztása 160
Numerikus típusok 160
Dátum és idő típusok 162
Karakterlánc-típusok 162
További olvasnivaló 164
Hogyan tovább? 164
10. fejezet
Munkavégzés MySQL adatbázisunkkal 165
Mi az SQL? 165
Adatok beszúrása adatbázisba 165
Adatok visszakeresése adatbázisból 167
Adott feltételeknek megfelelő adatok visszakeresése 168
Adatok visszakeresése több táblázatból 169
Adatok visszakeresése meghatározott sorrendben 173
Adatok csoportosítása és összesítése 173
Visszakapni kívánt sorok kiválasztása 175
Egymásba ágyazott lekérdezések használata 175
Adatbázisban lévő rekordok frissítése 177
Táblák megváltoztatása létrehozásuk után 177
Rekordok törlése adatbázisból 179
Táblák törlése 179
Teljes adatbázis törlése 179
További olvasnivaló 179
Hogyan tovább? 179
11. fejezet
MySQL adatbázis elérése a webről PHP-vel 181
Hogyan működnek a webes adatbázis-architektúrák? 181
Adatbázis lekérdezése a webről 184
A felhasználótól érkező adatok ellenőrzése és szűrése 184
Kapcsolat létrehozása 184
A használni kívánt adatbázis kiválasztása 185
Az adatbázis lekérdezése 185
A lekérdezés eredményeinek visszakeresése 186
Kapcsolat bontása az adatbázissal 187
Új információ felvitele az adatbázisba 187
Előfordított utasítások használata 189
Egyéb PHP adatbázis-illesztések használata 190
Általános adatbázis-illesztés használata: PEAR MDB2 190
További olvasnivaló 192
Hogyan tovább? 192
12. fejezet
Haladó MySQL-adminisztráció 193
A jogosultsági rendszer alaposabb megismerése 193
A user tábla 194
A db és a host tábla 195
A tables_priv, a columns_priv és a
procs_priv tábla 196
Hozzáférés-szabályozás: Hogyan használja a MySQL a jogosultsági táblákat? 197
Jogosultságok frissítése: Mikor lépnek életbe a változtatások? 197
MySQL adatbázisunk biztonságossá tétele 198
MySQL az operációs rendszer szemszögéből 198
Jelszavak 198
Felhasználói jogosultságok 198
Webes kérdések 199
További információk begyűjtése az adatbázisokról 199
Információszerzés a SHOW utasítással 199
Információszerzés oszlopokról a DESCRIBE utasítással 201
A lekérdezések működésének megismerése az
EXPLAIN utasítással 201
Adatbázisunk optimalizálása 205
Optimálisra tervezés 205
Jogosultságok 205
Táblaoptimalizálás 205
Indexek használata 205
Alapértelmezett értékek használata 205
További tippek 205
Biztonsági mentés készítése MySQL adatbázisunkról 206
MySQL adatbázisunk helyreállítása 206
Replikáció megvalósítása 206
A master kiszolgáló beállítása 207
A kezdeti adatátvitel megvalósítása 207
A slave kiszolgáló vagy kiszolgálók beállítása 208
További olvasnivaló 208
Hogyan tovább? 208
13. fejezet
Haladó MySQL-programozás 209
A LOAD DATA INFILE utasítás 209
Tárolómotorok 209
Tranzakciók 210
A tranzakciókkal kapcsolatos definíciók megismerése 210
Tranzakciók használata InnoDB táblákkal 210
Külső kulcsok 211
Tárolt eljárások 212
Alappélda 212
Helyi változók 214
Kurzorok és vezérlési szerkezetek 214
További olvasnivaló 217
Hogyan tovább? 217
III. rész
E-kereskedelem és biztonság 219
14. fejezet
E-kereskedelmi honlap üzemeltetése 221
Mi a célunk? 221
Az üzleti weboldalak típusai 221
Céges információ megjelenítése online katalógusként 221
Fontos információ közzétételének elmulasztása 222
Termékekre vagy szolgáltatásokra irányuló rendelések felvétele 223
Szolgáltatások vagy digitális termékek értékesítése 226
Többletérték hozzáadása termékekhez vagy szolgáltatásokhoz 226
Költségcsökkentés 227
Kockázatok és veszélyforrások megismerése 227
Crackerek 227
A kívánt üzleti eredmény elmaradása 228
Számítógépes hardverhibák 228
Elektromos, kommunikációs vagy hálózati hibák 228
Erős verseny 228
Szoftverhibák 228
Változó szabályozási környezet és adójogszabályok 229
Rendszer-kapacitásbeli korlátok 229
A megfelelő stratégia kiválasztása 229
Következő lépések 229
15. fejezet
Az e-kereskedelem biztonsági kérdései 231
A birtokunkban lévő információ fontossága 231
Biztonsági fenyegetések 232
Bizalmas adataink kitettsége 232
Adatvesztés vagy -rongálás 233
Adatmódosítás 234
Denial of Service támadás 234
Szoftverhibák 235
Letagadás 235
Használhatóság, teljesítmény, költség és biztonság 236
Biztonsági házirend létrehozása 236
A felhasználói hitelesítés alapelvei 237
A titkosítás alapjai 238
Privát kulcsú titkosítás 239
Nyilvános kulcsú titkosítás 239
Digitális aláírások 239
Digitális tanúsítványok 240
Biztonságos webszerverek 240
Auditálás és naplózás 241
Tűzfalak 242
Biztonsági mentés készítése az adatokról 242
Biztonsági mentés készítése általános fájlokról 242
MySQL adatbázisunk biztonsági mentése és
helyreállítása 242
Fizikai biztonság 242
Hogyan tovább? 243
16. fejezet
Webes alkalmazások biztonsága 245
Biztonságkezelési stratégiák 245
Megfelelő gondolkodásmód már a tervezéstől 245
A biztonság és a használhatóság közötti egyensúly keresése 245
Biztonsági felügyelet 246
Alapvető megközelítésünk 246
A ránk váró fenyegetések azonosítása 246
Bizalmas adatok elérése vagy módosítása 246
Adatvesztés vagy -rongálás 247
Denial of Service támadás 247
Rosszindulatú kód befecskendezése 247
Feltört szerver 248
Kikkel állunk szemben? 248
Crackerek 248
Fertőzött gépek tájékozatlan felhasználói 248
Elégedetlen alkalmazottak 248
Hardvertolvajok 248
Saját magunk 248
Kódunk biztonságossá tétele 249
Felhasználó által bevitt értékek szűrése 249
A kimenet értékeinek szűrése védőkarakterekkel 252
Kódjaink szervezése 253
Mi kerül a kódunkba? 254
A fájlrendszerrel kapcsolatos, megfontolandó
szempontok 254
A kód stabilitása és kódhibák 255
Végrehajtó operátor és az exec parancs 255
Webszerverünk és a PHP biztonságossá tétele 256
Tartsuk szoftvereinket naprakészen! 256
A php.ini fájl tartalma 257
A webszerver konfigurálása 258
Webes alkalmazások hosztolása fizetős szolgáltatás igénybevételével 258
Az adatbázisszerverek biztonsága 259
Felhasználók és a jogosultsági rendszer 259
Adatküldés a szerverre 260
Kapcsolódás a szerverhez 260
A kiszolgáló futtatása 260
A hálózat védelme 261
Tűzfalak telepítése 261
DMZ használata 261
Felkészülés a DoS és DDoS támadásokra 262
Számítógépünk és az operációs rendszer biztonsága 262
Tartsuk naprakészen operációs rendszerünket! 262
Csak azt futtassuk, amire valóban szükség van! 262
Kiszolgálónk fizikai biztonsága 263
Katasztrófa-elhárítási terv 263
Hogyan tovább? 263
17. fejezet
Hitelesítés megvalósítása PHP-vel és MySQL-lel 265
Látogatók azonosítása 265
Hozzáférés-szabályozás megvalósítása 266
Jelszavak tárolása 267
Jelszavak titkosítása 269
Több oldal védelme 270
Alapszintű hitelesítés használata 270
Alapszintű hitelesítés PHP-ben 271
Alapszintű hitelesítés az Apache .htaccess fájljaival 272
A mod_auth_mysql hitelesítés használata 275
A mod_auth_mysql modul telepítése 275
A mod_auth_mysql modul használata 275
Egyéni hitelesítési folyamat létrehozása 276
További olvasnivaló 276
Hogyan tovább? 276
18. fejezet
Biztonságos tranzakciók végrehajtása PHP-vel és MySQL-lel 277
Biztonságos tranzakciók megteremtése 277
A felhasználó gépe 278
Az internet 278
Saját rendszerünk 279
A Secure Sockets Layer (SSL) protokoll használata 280
Felhasználói bevitel szűrése 282
Biztonságos tárolás megvalósítása 282
Hitelkártyaadatok tárolása 283
Titkosítás használata PHP-ben 283
A GPG telepítése 283
A GPG tesztelése 285
További olvasnivaló 289
Hogyan tovább? 289
IV. rész
Haladó PHP-módszerek 291
19. fejezet
A fájlrendszer és a kiszolgáló elérése 293
Fájlfeltöltés 293
A fájlfeltöltés HTML kódja 294
A fájlt kezelő PHP kód megírása 295
A gyakori feltöltési problémák megelőzése 298
Könyvtárfüggvények használata 298
Olvasás könyvtárakból 298
Információszerzés az aktuális könyvtárról 301
Könyvtárak létrehozása és törlése 301
A fájlrendszer elérése 302
Fájlinformációk gyűjtése 302
Fájltulajdonságok módosítása 304
Fájlok létrehozása, törlése és áthelyezése 304
Programfuttató függvények használata 304
Környezeti változók elérése: a getenv() és
a putenv() függvény 306
További olvasnivaló 306
Hogyan tovább? 306
20. fejezet
Hálózati és protokollfüggvények használata 307
A használható protokollok áttekintése 307
E-mail küldése és olvasása 307
Más weboldalak tartalmának felhasználása 308
Hálózati keresőfüggvények használata 310
Biztonsági mentés készítése vagy fájl tükrözése 313
Biztonsági mentés készítése vagy fájl tükrözése
FTP-vel 313
Fájlfeltöltés 318
Időtúllépés elkerülése 318
További FTP függvények használata 318
További olvasnivaló 319
Hogyan tovább? 319
21. fejezet
Dátum és idő kezelése 321
Dátum és idő megállapítása PHP-ból 321
A date() függvény használata 321
Unix-időbélyegek kezelése 322
A getdate() függvény használata 323
Dátumok ellenőrzése a checkdate() függvénnyel 324
Időbélyegek formázása 324
Váltás PHP és MySQL dátumformátumok között 326
Számolás dátumokkal PHP-ben 327
Számolás dátumokkal MySQL-ben 328
Mikroszekundumok használata 329
Naptárfüggvények használata 329
További olvasnivaló 329
Hogyan tovább? 329
22. fejezet
Képek előállítása 331
Képi támogatás beállítása PHP-ben 331
Képformátumok 332
JPEG 332
PNG 332
WBMP 332
GIF 332
Képek létrehozása 333
Rajzvászon létrehozása 333
Rajzolás vagy szöveg írása képre 334
Kimenet készítése a kész grafikáról 335
Erőforrások felszabadítása 335
Automatikusan létrehozott képek használata más oldalakon 336
Szöveg és betűk használatával létrehozott képek 336
A rajzvászon beállítása 338
A szöveg hozzáigazítása a gombhoz 339
A szöveg elhelyezése 341
A szöveg gombra írása 341
Befejezés 341
Ábrák és grafikonadatok rajzolása 342
További képkezelő függvények használata 348
További olvasnivaló 348
Hogyan tovább? 348
23. fejezet
Munkamenet-vezérlés PHP-ben 349
Mi a munkamenet-vezérlés? 349
A munkamenet alapjai 349
Mi a süti? 349
Sütik beállítása PHP-ból 350
Sütik használata munkamenetekkel 350
Munkamenet-azonosító tárolása 350
Egyszerű munkamenetek megvalósítása 351
Munkamenet indítása 351
Munkamenet-változók regisztrálása 351
Munkamenet-változók használata 351
Változók törlése és a munkamenet megszüntetése 351
Egyszerű példa munkamenetre 352
Munkamenet-vezérlés konfigurálása 353
Hitelesítés munkamenet-vezérléssel 354
További olvasnivaló 359
Hogyan tovább? 359
24. fejezet
További hasznos lehetőségek PHP-ben 361
Karakterláncok kiértékelése az eval()függvénnyel 361
Végrehajtás leállítása: die() és exit() 361
Változók és objektumok szerializálása 362
Információgyűjtés a PHP-környezetről 363
Milyen bővítmények lettek betöltve? 363
A kód tulajdonosának azonosítása 363
A kód utolsó módosítási időpontjának megállapítása 363
A futtatási környezet átmeneti módosítása 364
Forráskód színkiemelése 364
PHP használata parancssorban 365
Hogyan tovább? 365
V. rész
Gyakorlati PHP és MySQL projektek fejlesztése 367
25. fejezet
A PHP és a MySQL használata nagyobb projektekben 369
A szoftverfejlesztés gyakorlatainak alkalmazása webfejlesztésre 369
Webes alkalmazás projektjének tervezése és
megvalósítása 370
Kód többszöri felhasználása 370
Kezelhető kód írása 371
Programozási szabályok 371
Kódunk darabokra bontása 373
Egységes könyvtárstruktúra használata 373
Függvények dokumentálása és megosztása fejlesztői csapaton belül 374
Verziókövetés megvalósítása 374
A fejlesztőkörnyezet kiválasztása 375
Projektjeink dokumentálása 375
Prototípuskészítés 375
A működés és a tartalom szétválasztása 376
Kódoptimalizálás 376
Egyszerű optimalizációs lépések 376
Zend termékek használata 377
Tesztelés 377
További olvasnivaló 378
Hogyan tovább? 378
26. fejezet
Hibakeresés 379
Programozási hibák 379
Szintaktikai hibák 379
Futásidejű hibák 380
Logikai hibák 384
Hibakeresés a változók tartalmának kiíratásával 385
Hibajelentési szintek 387
A hibajelentési beállítások módosítása 388
Saját hibák kiváltása 389
A hibakezelés elegáns módja 389
Hogyan tovább? 390
27. fejezet
Felhasználói hitelesítés megvalósítása és személyre szabott tartalom megjelenítése 391
A megoldás alkotóelemei 391
Felhasználói azonosítás és személyre szabás 391
A könyvjelzők tárolása 392
Könyvjelzők ajánlása 392
A megoldás áttekintése 392
Az adatbázis létrehozása 394
A nyitóoldal létrehozása 395
A felhasználói hitelesítés megvalósítása 396
Felhasználók regisztrálása 397
Bejelentkezés 401
Kijelentkezés 404
Jelszóváltoztatás 405
Elfelejtett jelszó visszaállítása 407
Könyvjelzők tárolása és visszakeresése 411
Könyvjelzők hozzáadása 411
Könyvjelzők megjelenítése 413
Könyvjelzők törlése 414
Könyvjelzők ajánlása 416
A projekt továbbfejlesztésének lehetséges irányai 418
Hogyan tovább? 418
28. fejezet
Kosár funkció programozása 419
A megoldás alkotóelemei 419
Online katalógus létrehozása 419
A felhasználók által vásárlás közben megrendelt
termékek nyomon követése 419
Fizetési rendszer megvalósítása 420
Adminisztrációs felület programozása 420
A megoldás áttekintése 420
Az adatbázis létrehozása 423
Az online katalógus létrehozása 425
Kategóriák listázása 426
Adott kategória könyveinek listázása 428
A könyv részletes adatainak megjelenítése 430
A kosár funkció megvalósítása 431
A kosar_megjelenitese.php kód használata 431
A kosár megjelenítése 433
Termékek hozzáadása a kosárhoz 435
A módosított tartalmú kosár mentése 437
A fejlécen látható összefoglaló adatok megjelenítése 437
A pénztárnál 438
A fizetés feldolgozása 442
Az adminisztrációs felület megvalósítása 444
A projekt továbbfejlesztése 450
Meglévő rendszer használata 450
Hogyan tovább? 450
29. fejezet
Webalapú levelezőszolgáltatás létrehozása 451
A megoldás alkotóelemei 451
Levelezőprotokollok: a POP3 és az IMAP
összehasonlítása 451
POP3 és IMAP támogatása PHP-ben 451
PHP.indb 10 2010.10.20. 16:02:12
Tartalom XI
A megoldás áttekintése 452
Az adatbázis létrehozása 454
A kód architektúrájának vizsgálata 455
Be- és kijelentkezés 460
Felhasználói fiókok beállítása 462
Új felhasználói fiók létrehozása 463
Meglévő felhasználói fiók módosítása 464
Felhasználói fiók törlése 464
Levél olvasása 465
Postafiók kiválasztása 465
Postafiók tartalmának megtekintése 467
Levélüzenet olvasása 469
Üzenetfejlécek megjelenítése 472
Üzenet törlése 472
Levélküldés 473
Új üzenet küldése 473
Válaszküldés vagy levél továbbítása 474
A projekt továbbfejlesztése 476
Hogyan tovább? 476
30. fejezet
Levelezőlista-kezelő alkalmazás fejlesztése 477
A megoldás alkotóelemei 477
A levelezőlisták és a feliratkozott felhasználók adatbázisának létrehozása 478
Hírlevelek feltöltése 478
Csatolt állományokat tartalmazó levelek küldése 478
A megoldás áttekintése 478
Az adatbázis létrehozása 480
A kód architektúrájának meghatározása 482
A bejelentkezés megvalósítása 488
Új felhasználói fiók létrehozása 488
Bejelentkezés 490
Felhasználói funkciók megvalósítása 492
Levelezőlisták megtekintése 493
Listainformációk megjelenítése 496
Levelezőlisták archívumának megtekintése 498
Fel- és leiratkozás 499
A felhasználói fiók beállításainak megváltoztatása 500
Jelszavak megváltoztatása 500
Kijelentkezés 502
Adminisztrátori funkciók megvalósítása 502
Új levelezőlista létrehozása 503
Új hírlevél feltöltése 504
Egyszerre több fájl feltöltésének kezelése 506
A hírlevél előnézetének megtekintése 510
A hírlevél kiküldése 511
A projekt továbbfejlesztése 515
Hogyan tovább? 515
31. fejezet
Webes fórum fejlesztése 517
Gondoljuk végig a feladatot! 517
A megoldás alkotóelemei 517
A megoldás áttekintése 518
Az adatbázis megtervezése 519
A hozzászólások fanézetének megtekintése 521
Kibontás és összecsukás 523
A hozzászólások megjelenítése 525
A csomopont osztály használata 526
A hozzászólások egyenkénti megtekintése 530
Új hozzászólás írása 532
A projekt továbbfejlesztése 538
Meglévő rendszer használata 538
Hogyan tovább? 538
32. fejezet
Perszonalizált PDF dokumentumok előállítása 539
A projekt áttekintése 539
Dokumentumformátumok összehasonlítása 539
A megoldás alkotóelemei 542
Vizsgáztatórendszer 542
A dokumentum-előállító szoftver 542
A megoldás áttekintése 544
A tesztkérdések lekérdezése 545
A válaszok értékelése 546
RTF formátumú oklevél létrehozása 548
PDF formátumú oklevél létrehozása sablonból 550
PDF dokumentum előállítása PDFlib függvényekkel 553
"Helló, világ!" kód PDFlib függvényekkel 553
Az oklevél előállítása PDFlib függvényekkel 556
Fejlécekkel kapcsolatos problémák kezelése 562
A projekt továbbfejlesztése 562
Hogyan tovább? 562
33. fejezet
Kapcsolódás az Amazon Web Services felülethez
XML és SOAP segítségével 563
A projekt áttekintése: XML és a Web Services
használata 563
Ismerkedés az XML-lel 564
Web Services 566
A megoldás alkotóelemei 567
Az Amazon Web Services felület használata 567
XML értelmezése: REST válaszok 568
SOAP használata PHP-vel 568
Gyorsítótárazás 568
A megoldás áttekintése 568
Az alkalmazás magja 571
PHP.indb 11 2010.10.20. 16:02:12
XII Tartalom
Adott kategóriában lévő könyvek megjelenítése 576
AmazonResultSet objektum lekérése 578
Kérés intézése és az eredmény visszakeresése REST segítségével 585
Kérés intézése és eredmény visszakeresése SOAP segítségével 591
A kérésből származó adatok gyorsítótárazása 592
Vásárlói kosár fejlesztése 594
Fizetés az Amazonnál 597
A projekt kódjának telepítése 597
A projekt továbbfejlesztése 598
További olvasnivaló 598
34. fejezet
Web 2.0-s alkalmazások fejlesztése
Ajax-programozással 599
Mi az Ajax? 599
HTTP kérések és válaszok 600
DHTML és XHTML 600
Cascading Style Sheets (CSS) 601
Kliensoldali programozás 601
Szerveroldali programozás 602
XML és XSLT 602
Ajax alapok 602
Az XMLHTTPRequest objektum 602
Kommunikáció a szerverrel 604
A kiszolgáló válaszának feldolgozása 605
Tegyük össze az egészet! 606
Ajax elemek hozzáadása korábbi projektjeinkhez 609
Ajax elemek hozzáadása a PHPbookmark
alkalmazáshoz 609
További információ 618
Bővebben a Document Object Modelről (DOM) 618
JavaScript könyvtárak Ajax alkalmazásokhoz 618
Ajax-fejlesztői weboldalak 619
A függelék
A PHP és a MySQL telepítése 621
Az Apache, a PHP és a MySQL telepítése Unix alatt 621
Bináris fájlok telepítése 622
Forrás telepítése 622
A httpd.conf fájl: kóddarabok 626
A PHP támogatás is működik? 626
Az SSL működik? 627
Az Apache, a PHP és a MySQL telepítése Windows
alatt 628
A MySQL telepítése Windows alatt 628
Az Apache telepítése Windows alatt 629
A PHP telepítése Windows alatt 630
A PEAR telepítése 631
Egyéb konfigurációk beállítása 632
B függelék
Webes források 633
Források a PHP-ről 633
MySQL-lel és SQL-lel foglalkozó források 634
Források az Apache-ról 634
Webfejlesztés 635