Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

A Web programozása 2. előadás PHP fordító telepítése és integrálása az Apache http szerverbe. PHP alapok Rózsa Szabolcs BME Általános- és Felsőgeodézia.

Hasonló előadás


Az előadások a következő témára: "A Web programozása 2. előadás PHP fordító telepítése és integrálása az Apache http szerverbe. PHP alapok Rózsa Szabolcs BME Általános- és Felsőgeodézia."— Előadás másolata:

1 A Web programozása 2. előadás PHP fordító telepítése és integrálása az Apache http szerverbe. PHP alapok Rózsa Szabolcs BME Általános- és Felsőgeodézia Tanszék

2 Tartalom PHP telepítése PHP alapok Naptáralkalmazás készítése (http://gpsmet.agt.bme.hu/~szrozsa/calendar)

3 PHP telepítése Minden gépre feltelepítjük a PHP fordítót, majd elvégezzük annak integrálását az Apache webszerverre. A telepítőkészlet elérhető a tárgy honlapjáról:

4 PHP telepítése A PHP-t a c:\PHP könyvtárba installáljuk:

5 PHP telepítése A telepítés során telepítsük az Apache 2.2.x Modult is:

6 PHP telepítése Windows környezet alatt a kiterjesztések közül kapcsoljuk ki az alábbiakat: CURL, OpenSSL és PostgreSQL

7 PHP konfigurálása A telepítést követően el kell végeznünk az Apache konfigurálását: PHP modul betöltése PHP indexfájlok kezelése (A DirectoryIndex direktívához adjuk hozzá az index.php nevet is.

8 Az első PHP fájl lefuttatása A tárgy honlapjáról töltsük le a mai órán használt példaprogramokat, majd másoljuk be az e:\webprog\htdocs könyvtárba. Ezt követően egy böngészőben nyissuk meg a URL-t. Állítuk át a portot 80-ra!

9 Az első PHP fájl lefuttatása A Jegyzettömb segítségével nézzük meg a pelda1.php fájl forráskódját: Látható, hogy gyakorlatilag egy html dokumentumba ágyaztuk bele a PHP szkriptet, ami beilleszti a html dokumentumba a „Hello World” feliratot.

10 A PHP kód nyitó és zárótagei echo 'egyes szerkesztők (mint pl FrontPage) nem szeretik a feldolgozó utasításokat'; 3. Ez egy rövidítése ennek: " " 4.

11 Több kódrészlet elhelyezése a HTML dokumentumban PHP Test Ez igaz. Ez hamis. Ez igaz. Ez hamis.

12 Egy kis ismétles: 8 alapváltozó: boolean (logikai) integer (egész szám) float (lebegőpontos /double/) string (karakterlánc) Összetett típusok: array (tömb) object (objektum) Két speciális típus: resource (erőforrás) NULL PHP változótípusok A PHP a változó típusát automatikusan eldönti! Nyissuk meg Jegyzettömbbel a pelda3.php-t, majd értelmezzük a parancsokat!

13 PHP változótípusok Egészre konvertálás

14 Naptáralkalmazás készítése Havonta változó háttérkép Év, hónap A hónap napjai

15 A fejlesztés lépései 1.lépés: Egy minta html oldal elkészítése (pl január hó) 2.lépés: A dinamikusan változó tartalmak azonosítása 3.lépés: A dinamikusan változó tartalmak előállításához szükséges php kódok tervezése 4.lépés: A php kódok integrálása a html dokumentumba 5.lépés: Az eredmény tesztelése

16 Egy minta html oldal készítése Töltsük le a naptáralkalmazáshoz felhasználandó háttérképeket a tantárgy honlapjáról! A HTML dokumentumot az alábbiak szerint hozzuk létre: egysoros táblázat, mely első oszlop 800x600 képpont méretű (ekkorák a háttérképek), a második oszlopa pedig 200x600 képpont méretű; az első cellába illesszük be a januári háttérképet (1.jpg); a második cellába alulra illesztve helyezzük el az év és a hónap feliratát középre rendezve, majd ezek alá a hét napjainak nevét (Hétfő-Vasárnap), illetve 2011 január napjait a megfelelő táblázatos formában; a táblázat mindig hétfővel kezdődjön és vasárnappal végződjön az üresen maradó napokat fel kell tölteni az előző, illetve a következő hónap napjaival; az aktuális hónap napjai feketével jelenjenek meg, az előző ill. követő hónap napjai pedig szürkével;

17 Egy minta html oldal készítése

18

19 Mentsük el a fájlt utf-8 kódolással

20 Azonosítsuk be a dinamikus tartalmakat! A háttérkép neve: hónap_sorszáma.jpg Az aktuális év és hónap kitöltése A havi naptár kialakítása (erről egy kicsit később)

21 Tervezzük meg a kódot! A háttérkép neve: mivel a.jpg képek elnevezése követi a hónapok sorszámát, így a rendszeridőnek megfelelő hónap sorszámát felhasználhatjuk a beillesztendő kép neveként. "seconds" -a másodpercek száma 0-59 "minutes" -a percek száma 0-59 "hours" -az órák száma 0-23 "mday" -a hónapon belüli nap sorszáma 1-31 "wday" -a hét napjának sorszáma (vasárnap 0 – szombat 6) "mon" -a hónap sorszáma (1-12) "year" -az év (4 számjeggyel) "yday" -az éven belüli nap sorszáma "weekday" -a hét napjának a neve (Monday, Tuesday, stb.) "month" -a hónap neve (January, February, stb.) Getdate($timestamp) függvény A megadott tömbbe betölti az aktuális időpontnak (vagy a megadott $timestamp változónak) megfelelő dátum különböző jellemzőit:

22 Tervezzük meg a kódot! Illesszük ezt be a calendar.html fájl megfelelő helyére, majd mentsük el a fájlt calendar01.php néven.

23 Tervezzük meg a kódot!

24 Az évszám és a hónap nevének kijelzése Illesszük be a fenti kódot a calendar01.php-ba, majd mentsük el azt calendar02.php néven.

25 Az évszám és a hónap nevének kijelzése Vegyük észre, hogy a getdate itt már akár el is hagyható! (calendar03.php)

26 A hónap nevének megjelenítése: Az évszám és a hónap nevének kijelzése

27

28 Ellenőrizzük le, hogy amit eddig csináltunk az jó-e! Állítsuk át a rendszeridőt egy tetszőleges dátumra, majd nézzük meg a oldalt egy böngészőben! Megjegyzés: az oldal mindig a szerver dátumbeállításainak megfelelően áll elő. Esetünkben ez megegyezik a kliens időbeállításával is, mivel ugyanazon gépen fut a böngésző is. Érdemes kipróbálni egy szomszéd gépről lekérve ugyanezt az oldalt: /calendar/calendar04.php, ahol XXX.YYY.ZZZ.WWW a másik gép IP címe.

29 Most jön a neheze! - a havi naptár előállítása Mit kell tennünk: Meg kell határoznunk, hogy a hónap első napja milyen napra esik. Ki kell számítani, hogy ezen a héten hétfőre milyen nap esett. Meg kell határoznunk, hogy a hónap utolsó napja milyen napra esik. Ki kell számítani, hogy azon a héten a vasárnap milyen napra esik. A két időpont között ki kell számítanunk az eltelt heteket. Ezt követően a kezdő hétfőtől kezdve az eltelt heteken végigfutva ki kell íratnunk a napok sorszámát oly módon, hogy minden hétfőn új sort kezdünk a táblázatban. Ezt fejeljük meg még azzal, hogy a mai nap piros, dőlt, vastag számokkal, az eltérő hónaphoz tartozó napok pedig szürke színnel jelenjenek meg for ciklus ! if elágazások !

30 Most jön a neheze! - a havi naptár előállítása

31 //Számítsuk ki a kiírandó hetek számát // A hónap utolsó napjának dátuma $lastdaymonth= strtotime('last day of this month'); // Az ezt követő Vasárnap dátuma $lastsunday = strtotime('Sunday this week', $lastdaymonth); // A hetek számának meghatározása $weeknum = ($lastsunday - $firstmonday) / / 7; // A hónap utolsó napjának neve $lastday = getdate($lastdaymonth); if ($lastday[wday] != 0) $weeknum = $weeknum + 1; Most jön a neheze! - a havi naptár előállítása Megjegyzés: a hetek száma tört értékű. Így ha ennek az egészrészét vesszük, akkor pontosan egy héttel rövidebb időszakra készül el a naptár (kivéve azt az esetet, ha a hónap utolsó napja vasárnapra esik).

32 Jöhet a for ciklus! // For ciklus az összes érintett hétre $caldate = $firstmonday;// Kezdőértékadás a dátumváltozóhoz for ($i=0; $i<(floor($weeknum)); $i++) { echo " ";// Megnyitjuk a táblázat következő sorát for ($j=0; $j<7; $j++)// For ciklus a hét napjaira { $caldatearray = getdate($caldate); // Az időbélyeget felbontjuk átalakítjuk dátumtömb formátumra if ($today[mon] != $caldatearray[mon]) // Ha a nap nem az aktuális hónaphoz tartozik, akkor szürkével jelenjen meg echo " $caldatearray[mday] "; else { if ($today[mday] == $caldatearray[mday]) echo " $caldatearray[mday] ";// Ha a mai nap, akkor pirossal else echo " $caldatearray[mday] "; // Ha az aktuális hónaphoz tartozik, akkor pedig feketével } $caldate = strtotime('next day',$caldate); } echo " "; } ?>

33 Nézzük meg az eredményt!

34 Ne álljunk meg félúton! A hónaphoz tartozó vasárnapokat jelöljük szintén pirossal! Ez egy újabb if elágazás beágyazását jelenti. Ha a hónaphoz tartozik egy nap, és az nem a mai nap, akkor piros álló betűvel jelenjen meg a nap sorszáma a naptárban! if ($today[mon] != $caldatearray[mon])// Ha a nap nem az aktuális hónaphoz tartozik, akkor szürkével jelenjen meg echo " $caldatearray[mday] "; else { if ($today[mday] == $caldatearray[mday]) echo " $caldatearray[mday] "; //Ha a mai nap, akkor piros, dőlt, aláhúzott else { if ($caldatearray[wday] == 0) echo " $caldatearray[mday] ";//Ha vasárnap, akkor piros vastag betűvel else echo " $caldatearray[mday] "; // Ha egyéb napról van szó, akkor feketével }

35 Kész a naptárunk!

36 Véglegesítsük az alkalmazást, majd teszteljük! A calendar06.php állományt mentsük el index.php néven is az e:\webprog\htdocs\calendar könyvtárba! Ezt követően a naptáralkalmazást elérhetjük a URL-n is, hiszen a httpd.conf fájlban megadtuk az index.php-t, mint lehetséges indexfájlt!http://localhost/calenda Állítsuk át a rendszeridőt különböző értékekre, majd nézzük meg a dátumnak megfelelő naptárlapokat a böngészővel.


Letölteni ppt "A Web programozása 2. előadás PHP fordító telepítése és integrálása az Apache http szerverbe. PHP alapok Rózsa Szabolcs BME Általános- és Felsőgeodézia."

Hasonló előadás


Google Hirdetések