PHP fordító telepítése és integrálása az Apache http szerverbe.

Slides:



Advertisements
Hasonló előadás
Szerver oldali programozás
Advertisements

Weblapkészítési tudnivalók 2: Útmutató az elnevezésekhez Pék Ágnes © 2009.
HTML nyelv Hiper-Text Markup Language 1. óra.
HTML nyelv.
Verzió 1.1.  Propszt István (csoportfelelős)  Resz János-Antal  Rusz Erzsébet  Varga Anita.
Microsoft Excel Függvények II.
DFAN-INF-524 és DFAL-INF-524 kurzus hallgatói számára
megismerése, mintaadatbázis létrehozása
HTML űrlapok kezelése és feldolgozása PHP segítségével
Visual Basic for Application (VBA)
JavaScript.
Honlap készítés Érdekességek.
Bevezetés a Java programozásba
Programozás II. 3. Gyakorlat C++ alapok.
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
HTML nyelv.
Leírónyelvek: HTML és XHTML
Készítette: Rummel Szabolcs
Eszterházy Károly Főiskola ─ Médiainformatika Intézet HTML (HiperText Mark-Up Language) HTML leírónyelvvel írjuk le, hogy a weboldal elemei (képek, szöveg,
Programozás I. Horváth Ernő.
WebStarter ECDL W e b k e z d ő ECDL Webkezdő mintafeladat.
Készítette: Nagy-Szakál Zoltán 2007.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
PHP Webprogramozás alapjai
 Az Apache webszervernek semmi köze az Apache indiánokhoz, akik az Egyesült Államok dél-nyugati részén élõ õslakók. A név egy szójáték: "a patchy server”,
Web-grafika (VRML) 10. gyakorlat Kereszty Gábor. Script típusok Elemi típusok: szám: egész vagy lebegőpontos – int / float – 1 / 1.1 string: ‘Hello World!’
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Szombathely Dinamikus WEB programozás: PHP és JSP.
MICROSOFT OFFICE EXCEL. Indítása  Start - Minden program – Microsoft Office – Microsoft Office Excel  Asztalról az ikonjára dupla kattintással.
Lénárt Anett egyetemi adjunktus - PTE PMMK Rendszer- és Szoftvertechnológia Tanszék Előadás JavaScript Tananyag: W eb - programozás.
Vizuális és web programozás II.
KÖRDOKUMENTUM készítése
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
PHP III. Fájlok, űrlapok.
PHP VII Sütik, munkamenetek. Sütik Mi az a süti? A süti (cookie) állapotot tárol a felhasználó böngészőjében. Pl. ha egy oldalon beállítható, hogy milyen.
A PHP (PHP: Hypertext Preprocessor) nyílt forráskódú, számítógépes szkriptnyelv, legfőbb felhasználási területe a dinamikus weboldalak készítése. Emiatt.
Buris Katalin V. földrajz - informatika
Verzió 1.1.  Propszt István (csoportfelelős)  Resz János-Antal  Rusz Erzsébet  Varga Anita.
Alapszint 2.  Készíts makrót, ami a kijelölt cellákat egybenyitja, a tartalmat vízszintesen és függőlegesen középre igazítja és 12 pontos betűméretűre.
PHP nyelv. PHP Interpreteres nyelv → parancsértelmező szükséges hozzá Rasmus Lerdorf 1995 → személyes felhasználás (internetes önéletrajzának megtekintésének.
PHP szkriptek alkalmazása a webes adatbázis kezelésére
PHP oktatási tapasztalatok
Bevezetés a PHP világába - kezdőknek
Készítette: Csíki Gyula
HTML nyelv.
Honlap készítés 2. óra.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
Objektum orientált programozás
Objektum orientált programozás
Webprogramozó tanfolyam
Objektum orientált programozás
Az algoritmuskészítés alapjai
Készítette: Turócziné Kiscsatári Nóra
Az NVU webszerkesztő program
HTML ÉS PHP (Nagyon) rövid áttekintés. ADATBÁZISRENDSZEREK MŰKÖDÉSI SÉMÁJA Felh. interakció DB Connector MySQL ? A gyakorlaton:
Táblázatok.
Java web programozás 7-8..
Dokumentum formázása.
„Például, hogy hozok táblázatban, vagyis űrlapon belül létre egy új űrlapot? Úgy próbálkoztam, de nem hinném, hogy jó.” 0. dia.
Gazdasági informatikus - Szövegszerkesztés 1 Bekezdések formázása 2.
Excel programozás (makró)
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás I. 3. gyakorlat.
A Mozilla magyar nyelvű szerkesztőjének használata
Másolás és automatikus kitöltés
Kördokumentum készítése
Neumann János Informatikai Kar
Excel programozás (makró)
Programozás C# -ban Elágazások.
A CLIPS keretrendszer
Előadás másolata:

PHP fordító telepítése és integrálása az Apache http szerverbe. 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

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

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:

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

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

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

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.

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 http://localhost/pelda1.php URL-t. Állítuk át a portot 80-ra!

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.

A PHP kód nyitó és zárótagei 1.  <?php echo 'ha XHTML vagy XML dokumentumokat akarsz szolgáltatni, tedd így'; ?> 2.  <script language="php">        echo 'egyes szerkesztők (mint pl FrontPage) nem szeretik              a feldolgozó utasításokat';    </script> 3.  <? echo 'ez a legegyszerűbb, egy SGML processing utasítás'; ?>     <?= kifejezes ?> Ez egy rövidítése ennek: "<? echo kifejezes ?>" 4.  <% echo 'Használhatsz ASP-stílusú tag-eket'; %>    <%= $valtozo; # Ez egy rövidítése ennek: "<% echo . . ." %>

Több kódrészlet elhelyezése a HTML dokumentumban <head> <title>PHP Test</title> </head> <body> <?php if (1 == 1) { ?> <strong>Ez igaz.</strong> } else { <strong>Ez hamis.</strong> } if (1 != 1) { </body> </html> http://localhost/pelda2.php

A PHP a változó típusát automatikusan eldönti! PHP változótípusok Egy kis ismétles: Nyissuk meg Jegyzettömbbel a pelda3.php-t, majd értelmezzük a parancsokat! http://localhost/pelda3.php 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 A PHP a változó típusát automatikusan eldönti!

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

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

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

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;

Egy minta html oldal készítése

Egy minta html oldal készítése

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

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)

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. 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: "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 0-365 "weekday" - a hét napjának a neve (Monday, Tuesday, stb.) "month" - a hónap neve (January, February, stb.)

Tervezzük meg a kódot! <?php // Válasszuk ki a hónapnak megfelelő háttérképet $today=getdate(); echo "<td valign=\"top\" background=\"$today[mon].jpg\"> </td>"; ?> Illesszük ezt be a calendar.html fájl megfelelő helyére, majd mentsük el a fájlt calendar01.php néven.

Tervezzük meg a kódot! http://localhost/calendar/calendar.php

Az évszám és a hónap nevének kijelzése <?php $today=getdate(); // Írjuk ki az aktuális évszámot echo "<font face=\"Verdana\" size=\"6\">$today[year]</font></td>"; ?> Illesszük be a fenti kódot a calendar01.php-ba, majd mentsük el azt calendar02.php néven.

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)

Az évszám és a hónap nevének kijelzése A hónap nevének megjelenítése: <?php // Írjuk ki az aktuális hónap nevét // Először hozzunk létre egy tömböt a hónapok nevével $honap = array('Január', 'Február', 'Március', 'Április', 'Május', 'Június', 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'); // Majd írassuk ki az aktuális dátumban szereplő hónap nevét az előbbi tömbből. // Vegyük észre, hogy a $hónap tömb azon elemét kell kiírni, ahányadik hónapot írjuk minusz 1 // Ennek az az oka, hogy a tömbök indexelése 0-val kezdődik $honapszam = $today[mon]-1; echo "<font face=\"Verdana\" size=\"4\">$honap[$honapszam]</font></td></tr></table>"; ?>

Az évszám és a hónap nevének kijelzése

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 http://localhost/calendar/calendar04.php 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: http://<XXX.YYY.ZZZ.WWW>/calendar/calendar04.php, ahol XXX.YYY.ZZZ.WWW a másik gép IP címe.

for ciklus ! if elágazások ! 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 !

Most jön a neheze! - a havi naptár előállítása <?php // A naptárban szereplő legelső nap dátumának meghatározása // Az aktuális hónap első napjához képest meg kell találnunk a megelőző hétfő dátumát // A hónap első napjának időbélyege $firstdaymonth = strtotime('first day of this month'); // Az ezt megelőző hétfő dátuma $firstday = getdate($firstdaymonth); if ($firstday[wday] != 0) $firstmonday = strtotime('Monday this week', $firstdaymonth); else $firstmonday = strtotime('Monday this week', ($firstdaymonth - 86400)); strtotime ($string, $timestamp) Megadja a $timestamp időponthoz képest a $string-ben leírt feltételnek megfelelő időpontot (PHP 5.3-tól, használható a fenti szintaxis). Megjegyzés: a PHP a hetet vasárnappal kezdi (unix örökség), így abban az esetben, ha a hónap első napja vasárnapra esik, akkor az azt megelőző hétfő dátumát kell megkeresni.

Most jön a neheze! - a havi naptár előállítása //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) / 86400 / 7; // A hónap utolsó napjának neve $lastday = getdate($lastdaymonth); if ($lastday[wday] != 0) $weeknum = $weeknum + 1; 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).

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 "<tr align=\"center\">"; // 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 "<td><font color=\"#AAAAA\">$caldatearray[mday]</font></td>"; else if ($today[mday] == $caldatearray[mday]) echo "<td border=\"1\"><font color=\"#FF0000\"><b><i><u>$caldatearray[mday]</u></i></b></font></td>"; // Ha a mai nap, akkor pirossal echo "<td>$caldatearray[mday]</td>"; // Ha az aktuális hónaphoz tartozik, akkor pedig feketével } $caldate = strtotime('next day',$caldate); echo "</tr>"; ?>

Nézzük meg az eredményt!

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 "<td><font color=\"#AAAAA\">$caldatearray[mday]</font></td>"; else { if ($today[mday] == $caldatearray[mday]) echo "<td><font color=\"#FF0000\"><b><i><u>$caldatearray[mday]</u></i></b></font></td>"; //Ha a mai nap, akkor piros, dőlt, aláhúzott if ($caldatearray[wday] == 0) echo "<td><font color=\"#FF0000\"><b>$caldatearray[mday]</b></font></td>"; //Ha vasárnap, akkor piros vastag betűvel echo "<td>$caldatearray[mday]</td>"; // Ha egyéb napról van szó, akkor feketével }

Kész a naptárunk! http://localhost/calendar/calendar06.php

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 http://localhost/calendar URL-n is, hiszen a httpd.conf fájlban megadtuk az index.php-t, mint lehetséges indexfájlt! Á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.