PHP - az alapoktól az alkalmazásig
 
Általános információk
Tanfolyamok ismertetése
Próba
Regisztráció
Belépés a rendszerbe
1. fejezet: Php alapfogalmak és működés

Bevezető:

Ebben a leckében megismerkedünk a php kialakulásának történetével és fejlődésével. Megismerjük a működésének elméletét is. Foglalkozunk a webszerver fogalmával és a webszerver összetevőinek működésével. Így jobban meg fogjuk érteni a leckék alatt, hogy a létrehozott kódjaink hogyan is működnek. Részletesen megismerjük a folyamatokat, amelyek egy php lap futtatásakor történnek a kliens gép és a webszerver között. Mivel a tananyagnak része a webszerver telepítése is, így mindenképpen fontos, hogy jól megértsük a működését is. Betekintést nyerhetünk a php programok alkalmazási területeibe és felhasználásuk lehetőségeibe. Végezetül megtekintünk néhány hosting lehetőséget azon tanulóink részére, akik nem szeretnének webszervert telepíteni és más megoldásokat keresnek.

 

 

A Php története:

Rasmus Lerdorf A Php nyelv az 1994-es megszületésétől napjainkig hatalmas fejlődésen ment keresztül. A Php ősét Rasmus Lerdorf (Rasmus Lerdorf a jobb oldali képen látható) alkotta meg, saját személyes oldalai számára. Ekkor a nyelv nem más volt, mint egy Perl scriptgyűjtemény. Az akkoriban már elterjedt és kedvelt Perl nyelv elemeit használta arra, hogy nyomon kövesse az online önéletrajzához való hozzáféréseket. Egyszerű megoldást keresett egy egyszerű problémára és így született meg a Php őse. A kezdeti nyelv nevének jelentése ekkor még PHP: Personal Home Page Tools (személyes honlap eszközök) volt. Ezután, mivel több funkcionalitásra volt szüksége, alkalmazta a FI (Form Interpreter) nevű eszközt és ezek egyesítésével jött létre a PHP/FI nyelv. Jelentése: Personal Home Page / Forms Interpreter (személyes honlap / űrlap értelmező). Rasmus Lerdorf készített egy sokkal összetettebb és terjedelmesebb C nyelvű implementációt. A bővített forma már képes volt arra, hogy adatbázisokat kezeljen. Ezen felül lehetőséget biztosított a fejlesztőknek, hogy egyszerűbb webes alkalmazásokat állítsanak össze a nyelv használatával. Rasmus Lerdorf úgy döntött, hogy közzéteszi a forráskódot, hogy ezáltal a nyelvet bárki használhassa és beletekinthessen a forrásába. Ez lehetőséget adott minden vállalkozó szellemű fejlesztőnek a nyelv javítására és további fejlesztésére. Az akkor még PHP/FI nevet viselő nyelv elindult hódító útjára és nagyon hamar rengeteg felhasználóhoz jutott el.

A PHP/FI már tartalmazott néhány jellemzőt és funkcionalitást a mai Php nyelvből. Ilyenek például az automatikus űrlapváltozó értelmezés, Perl-szerű változókezelés és a HTML-be ágyazott szintaxis. 1997-re a PHP/FI 2.0 volt az újabb fejlesztés, amelyben a C implementáció második újraírásával tovább fejlődött a programnyelv. Ez a verzió már futótűzként terjedt és világszerte több ezer felhasználó használta. Több mint 50.000 domain jelezte, hogy teleptette és használja a PHP/FI 2.0-t, ez az akkori domain-ek számának 1%-a volt. Igaz ugyan, hogy a nyílt forráskódnak köszönhetően többen is hozzájárultak a fejlesztéshez, de ekkor még a programnyelv fejlesztése nagyjából Rasmus Lerdorf egyszemélyes project-je volt. A PHP/FI 2.0 csak 1997 novemberében került hivatalosan kiadásra, mert több hónapot próbaverzióként töltött el. Talán ennek a kis késésnek volt köszönhető, hogy hamarosan berobbant a köztudatba a Php 3.

Zeev Suraski A Php 3 volt az első olyan verzió, amely már szerkezetileg és működésében is nagyban hasonlított a ma használt értelmezőkre. Ez a verzió már nem a PHP/FI 2.0 továbbfejlesztése volt, hanem egy teljes újraírás. Az alapkoncepciót természetesen a PHP/FI adta, de megváltoztak a célok és az alkalmazási terület is, így a programnyelv fejlesztése már sokkal többet kívánt, mint egy egyszerű fejlesztés. Alapjaiban kellett megváltoztatni az egészet. Andi Gutmans és Zeev Suraski (Zeev Suraski a bal oldali képen látható) volt az a két fejlesztő, akik megalkották a Php 3 alapmotorját és útjára indították a Php új generációjának fejlődését. Ezzel elkezdődött egy csapatmunka. A Php jelentése ekkor már PHP: Hypertext Preprocessor- ra (Hiperszöveg Előfeldolgozó) változott.

Andi Gutmans Andi Gutmans és Zeev Suraski (Andi Gutmans a jobb oldali képen látható) egy egyetemi projekt keretein belül alkalmazta a PHP/FI 2.0-t és azt tapasztalták, hogy a programnyelv nem támogatja megfelelően az eCommerce (pl. Interneten keresztüli bankkártyás fizettetések) alkalmazások írását, fejlesztését. Ekkor döntöttek úgy, hogy átírják a PHP/FI 2.0-t és megalkotják az új Php 3-at. Természetesen a fejlesztésből nem maradt ki Rasmus Lerdorf sem. Andi Gutmans és Zeev Suraski felkérték az együttműködésre és az így kialakult csapat bejelentette 1997 év végén a Php 3 megjelenését, amely a PHP/FI 2.0 hivatalos utódja lett. Mivel a régi motort teljesen átalakították, így a PHP/FI 2.0 programnyelv fejlesztése szinte teljesen abbamaradt és átadta helyét az új generációs Php 3-nak. A Php 3.0 egyik legnagyobb lehetősége, előnye (talán a nagy sikerének a titka is) a kiterjeszthetősége volt. A végfelhasználókat egy szilárd, sok különböző adatbázist támogató infrastruktúrával, protokollokkal és API-kkal szolgálta ki. Az API nem más mint az Application Programming Interface (Felhasználói Program Interfész) rövidítése. Szabványos és jól dokumentált függvények és eljárások halmaza, amiket a programozó a szoftver és hardver vezérlésére használhat.

A Php 3.0 kiterjeszthetősége egy olyan lehetőséget kínált, ami programozók tucatjait csábított arra, hogy új kiterjesztésekkel, API-kkal bővítsék szabadon a nyelvet. Volt még egy újonnan bevezetett tulajdonság, ami mérföldkőnek számított a nyelv fejlődésében, az pedig nem más, mint az objektum-orientált szintaxisok támogatása. Az egész programnyelv szintaxisa sokkal erősebb és konzisztensebb (egységesebb) lett. Kialakult az a stabil struktúra, amelyre már lehetett építkezni. A Php 3.0-at hivatalosan 1998 júniusában adták ki és ezt követően közel 9 hónapig volt nyilvánosan is tesztelési stádiumban. Újabb és újabb fejlesztések és API-k kerültek a csomagba a lelkes fejlesztők és programozók táborától. 1998 év végére több százezer webhely jelezte, hogy teleptette és használja a Php 3-at Ez az akkoriban létező webhelyek 10% volt. Elindult az a futótűzszerű terjedés, ami biztosította a Php későbbi elterjedését és hihetetlen népszerűségét.

Php Logo 1 Nem telt el sok idő a Php 3.0 kiadását követően, és a két fejlesztő, Andi Gutmans és Zeev Suraski máris munkához látott, hogy átdolgozza a php magját. Az alapcélkitűzésük ezzel az újabb módosítással az volt, hogy lépést tartva a kor igényeivel tovább fejlesszék és javítsák a bonyolult alkalmazások hatékonyságát. Tökéletesíteni akarták a Php kódbázisának modularitását, ezzel téve még gyorsabbá és hatékonyabbá a nyelvet. Modularitásnak nevezzük azt, amikor egy rendszer elemei elhatárolódnak, és egy jól definiált kapcsolódófelületen (interface-en) át kommunikálnak egymással.A Php 3 nem arra volt tervezve, hogy összetett és bonyolult eljárásokat kezeljen, így erre mindenképpen szükség volt a továbblépéshez.

Andi Gutmans és Zeev Suraski egy új motort írt tehát a fenti célok elérésére, amit Zend Engine-nek neveztek el. Ez az elnevezés a Zeev és Andi nevekből összeállítva született meg és a mai napig ez a motor hajtja a Php fordítókat. Ezt az új motort 1999 közepén mutatták be. Ezen a motoron elindulva fejlesztették ki a php 4-et. Sok új lehetőséget és funkciót építettek az új Php verzióba, amely PHP 4.0 néven, hivatalosan 2000 májusában került kiadásra, majdnem két évvel a PHP 3.0 után. A Zend Technologies ma már a PHP mögött álló első számú cég, a PHP alapjainak készítői indították. A Php 4.0-ban rengeteg újítás látott napvilágot, például sokkal több webszervert támogat, HTTP session-ök alkalmazása, kimenet-pufferelés, ezáltal a programok gyorsabb futása, kisebb gépigénye.. Nagy hangsúlyt fektettek a biztonságosabb üzemelésre is, azaz a felhasználói inputok sokkal biztonságosabb kezelést kaptak. Ezeken felül még sok egyébb nyelvi konstrukció került bevezetésre. Ezekről azonban nem érdemes hosszan beszélni, hiszen a nyelv továbbfejlődött egy újabb verzióval.

Php Logo 2 A leckék készítésekor a Php 5 (PHP 5.2.4) volt az aktuális verzió, de már bejelentették a 6-os verzió megjelenését is, tehát egyértelműen érzékelhető, hogy a nyelv fokozatosan fejlődik. A Php 5 hosszú fejlesztés és sok előzetes kiadás után 2004 júliusában jelent meg. Alapja a Zend Engine 2.0 nevű motor, amely tartalmazza az új objektum-orientált modellt és számos egyéb új szolgáltatást. Jelenleg több millió webhely telepítette és alkalmazza a Php értelmező alkalmazást, körülbelül a mai webhelyek összességének több, mint 20%-a. Az egyszemélyes projekt mára már rég a múlté. Jelenleg a Php fejlesztői csapata több tucat fejlesztőt foglal magában, valamint sok más embert, aki a Php-hoz fűződő projektekben dolgozik. Ilyen projectek például a PEAR és a dokumentációs projektek. A Php nyelvhez több nyelven is adtak ki nagyon jó és összetett Manual helpet, ami nagyon hasznos lehet azoknak, akik elhatározták, hogy php programokat fognak készíteni. Ezek a dokumentációk mindig naprakészen frissítve elérhetőek a Php saját weboldalain.

Ez volt tehát a Php fejlődésének rövid történelmi áttekintése. Fontos megértenünk azt, hogy miért is alakult ki ez a nyelv és milyen irányba fejlődött az évek során. A rengeteg belefektetett munka ellenére is megmaradt ingyenesen használható környezetnek és egyre népszerűbb. A Php magában azonban kevés. A működéséhez szükség van egy webszerverre is. A 2. és 3. leckében foglalkozunk a webszerver telepítésével és beüzemelésével, de azt is fontos megértenünk, hogy a webszerver hogyan működik és ezzel együtt a php működésébe is betekintést nyerhetünk. Nézzünk át néhány alapfogalmat a webszerverrel és annak működésével kapcsolatban.

Kliens-szerver működés:

Általánosságban azt jelenti, hogy egy kiszolgáló (szerver) program a kliens programtól hozzá érkező kéréseket feldolgozza és választ ad rájuk. Egyszerre akár több kérést is ki tud szolgálni. A kliens és a szerver program általában nem ugyanazon a számítógépen működik, ezért szükség van valamilyen címzési rendszerre, és kommunikációs szabályokra. Most, a mi esetünkben a kliensprogram egy böngésző (Internet Explorer, FireFox, Opera, stb.), ami a webcím (URL) alapján megkeresi a kiszolgálót, és elkéri a megadott címen található lapot. A kiszolgáló program pedig egy webszerver (Apache, IIS, stb.), ami megkeresi a kért lapot, és ha megtalálja, elküldi. A címzési rendszert a DNS valósítja meg, a kommunikáció pedig a http protokoll alapján történik. Utóbbiakat lásd később.

A TCP/IP protokoll:

A TCP/IP (az angol Transmission Control Protocol/Internet Protocol rövidítése, magyarul átviteli vezérlő protokoll/internetprotokoll): az interneten használt kapcsolatorientált kommunikációs protokoll, amely két protokoll együttese. A TCP kezeli és tartja fenn a kommunikációs kapcsolatot és biztosítja annak hibamentességét, míg az IP végzi az adatcsomagok alacsony szintű vezérlését és továbbítását. Amikor az interneten két számítógép kapcsolatba lép, és kommunikál, akkor a TCP/IP protokollra építi a kommunikációját.

A HTTP mint protokoll:

A HTTP (HyperText Transfer Protocol) kérés/válasz jellegű protokoll ügyfél (kliens) és kiszolgáló (szerver) között. A böngésző és a webkiszolgáló közötti kommunikáció szabályait írja le. Működéséhez a TCP/IP protokol szükséges.

Az IP cím:

Említettük, hogy két számítógép kapcsolatához kommunikációs szabályok (protokoll) és címzési rendszer kell. Az Interneten az IP protokoll szerint zajlik az élet. Az IP, a forrás- és célállomásokat (az úgynevezett hostokat) címekkel (IP-címek) azonosítja, amelyek 32 biten ábrázolt egész számok; azonban ezt hagyományosan négy darab 8 bites (vagyis 0 és 255 közé eső), ponttal elválasztott számmal írjuk le, a könnyebb olvashatóság miatt (pl: 192.168.42.1).

Domain név (tartománynév):

A tartománynév fogalmat több formában is ismerjük és használjuk. Angolul Domain Name, angolosan magyarul kiejtve domainnév, illetve doménnév. A tartománynév egy számítógép egyedi neve az interneten, mely megkülönbözteti a többitől. A tartománynevek csupán címkék, amiket a hosszú és bonyolult IP-címek helyett használhatunk. A tartományneveket nem szabad összekeverni a weblapokkal vagy webhelyekkel. A tartománynév ugyan legtöbbször kifejezi vagy valamilyen formában jelzi a cél webhely tartalmát, de ez nem feltétel és nem is kötelező.

DNS:

A DNS (Domain Name Service) az internet működésének egyik alappillére. Egy olyan rendszer, amely hálózatokon (például az interneten) a kiszolgáló- és tartománynevekről tárol információt, egyfajta elosztott adatbázisban. A sokféle tárolható információ közül a legfontosabbak az egyes tartománynevekhez tartozó fizikai helyek (IP-címek), illetve a tartományhoz tartozó levelező-kiszolgálók listája. A DNS a felelős azért, hogy IP címek helyett domain neveket használhassunk, azaz a nevekhez a fent leírt adatbázis alapján szolgáltatja az IP címet, ami alapján a tényleges kommunikáció elindulhat. A DNS pontos működését most nem tárgyaljuk.

Lássunk egy példát:

Ha a böngészőbe beírjuk, hogy www.origo.hu, akkor ez valójában egy webkiszolgáló IP címét jelenti. A böngésző pusztán a név alapján nem tudja azonosítani a hozzá tartozó IP címet. Ezért a számítógépen beállított névkiszolgálóhoz fordul, elküldi neki a nevet, és az visszaadja az IP címet, ha létezik ilyen összerendelés. Ebből az is következik, hogy ha nincs a gépünkön beállítva, hogy a névfeloldáshoz milyen DNS szerverhez kell fordulni, akkor nem tudjuk az internet szolgáltatásait név szerint használni. Érdekességképpen beírhatjuk a böngésző címsorába, hogy 195.228.240.145, akkor névfeloldási procedúra nélkül, azonnal az ORIGO portált nyitja meg.

DNS szerver:

Olyan kiszolgáló számítógép, ami képes arra, hogy egy hozzá érkező kérésre, az abban található névhez lekérje a megfelelő IP címet, és azt visszaküldje. Ha mi internet előfizetéssel rendelkezünk, akkor az internet szolgáltatónk megadja a saját DNS szervereinek a címét, és a gépünkön, a TC/IP beállításoknál ezt kell beállítani. Az is lehet, hogy az internetre csatlakozáskor a gépünk automatikusan kap IP címet, és vele együtt megkapja a DNS szerverek IP címeit is. Ha a gépünk egy lokális hálózat tagja, pl. a munkahelyünkön, akkor gyakran előfordul, hogy a DNS szolgáltatást egy helyi szerver végzi, és a külső internet címekhez tartozó neveket az kéri le a DNS adatbázisából.

Web cím (url, web address):

Tim Berners-Lee A webcím, vagy URL (Uniform Resource Locator), magyarul egységes erőforrás-azonosító rövidítése. Az Interneten megtalálható bizonyos erőforrások (például szövegek, képek) szabványosított címe. Először Tim Berners-Lee (Tim Berners-Lee a bal oldali képen látható) alkotta meg a World Wide Weben való használatra. A webcím az Internet történetének fontos újítása. Egyetlen url összefoglalja a cél megtalálásához szükséges négy alapvető információt, ezek a következőek:

1. A protokollt, amit a célgéppel való kommunikációhoz használunk.
2. A szóban forgó gép vagy tartomány nevét.
3. A hálózati port számát, amin az igényelt szolgáltatás elérhető a célgépen (nem kötelező).
4. A fájlhoz vezető elérési utat a célgépen belül.

Nézzünk meg egy egyszerű hétköznapi webcímet:

http://www.pentaschool.hu:80/szakirodalom/

A http határozza meg a kapcsolathoz használt protokollt. A protokoll neve után kettőspontot kell írni. A www.pentaschool.hu adja meg a célgép, célszerver tartománynevét. Ez elé két perjelet kell írni. A 80 adja meg a célgép azon hálózati portszámát, amin kérésünket várja, ez elé kettőspontot kell írni. Ennek megadása nem kötelező, a szerver automatikusan az alapértelmezettet használja, mivel a http protokoll alapértelmezett portszáma a 80. A /szakirodalom a kért elérési út a célgépen, azaz a célkönyvtár. Ezt csak akkor kell megadni, ha az elérni kívánt objektum könyvtárban van. Ez a rész mindig egy perjellel kezdődik.

A tartománynév helyett megadhatunk IP címet is. Erre akkor lehet szükség, ha például a célgéphez nem tartozik semmilyen regisztrált tartománynév. A legtöbb böngésző esetében nem kell a http:// részt begépeljük egy weblap eléréséhez, mivel általában úgyis ezt használjuk. Egyszerűen begépelhetjük a lap címét, például: 'www.pentaschool.hu/szakirodalom/'. A webhely fő lapjának megtekintéséhez általában elég a tartomány nevét beírni, például 'www.pentaschool.hu'.

Szerver oldali megoldások:

Az alap HTML dokumentum elérése úgynevezett kliens-szerver modellben történik. Ez azt jelenti, hogy a kliens, azaz az olvasó lekéri az oldalt a szervertől. A szerver az oldalnak megfelelő tartalmat továbbítja a kliensnek, aki azt megjeleníti. A dinamikus tartalom esetében a szerver képes a kliens vagy az előre megírt program igényeinek megfelelően szerkeszteni az oldalt. Ez a szerver oldali megoldások alapja. A weboldal ebben az esetben nem egy statikus állomány a rendszerben, hanem a szerver oldalon működő program kimenete. A program megfelelő vezérlésével biztosíthatóvá válik a kliens igényeinek kielégítése. Ezek a megoldások természetesen erőforrást igényelnek a szerver gépen, mivel minden kliens minden kérését ott kell feldolgozni.

Alkalmazásuk abban az esetben javasolt, ha statikus módszerekkel nem, vagy csak nehezen lehet megoldani az adott feladatot. Ilyen feladat például az, ha adatbázisban vagy más háttértárolókban lévő adatokat szeretnénk megjeleníteni, elmenteni, módosítani vagy törölni; élő kapcsolatot akarunk létesíteni kliens gépek között a szerveren keresztül vagy csak olyan funkciókat akarunk készíteni a weboldalunkra, amik szükségessé teszik a szerver oldali technológiát (regisztráció, belépés, számláló, vendégkönyv, szavazás, dinamikus testre szabhatóság, stb..). A szerver oldali technológiákat minden esetben a rendelkezésünkre álló szerver igényeinek megfelelően készítjük el a szükséges nyelven. Az oktatás során természetesen a php nyelvet alkalmazzuk.

A webszerver működése:

Miután megismertük az alapfogalmakat, nézzük meg, hogy a gyakorlatban hogyan is működik ez. A lenti grafikus ábra (1. ábra) szolgál a működés leegyszerűsített szemléltetésére. Nézzük meg először az ábrát és alatta lesz a magyarázat.

  1. ábra: Webszerver működése  
1. ábra: Webszerver működése

Az értelmezésben induljunk el a kliens gépektől. Ezek a számítógépek azok, amelyek az otthonainkban az asztalon pihennek és internetes kapcsolattal rendelkeznek. Az ábrán azért van több gép, hogy szemléltesse: egy webszerver rengeteg kliens gépet képes egyszerre kiszolgálni. Amikor beírunk egy internetes címet (pl.: http://www.pentaschool.hu/), akkor a zöld színű nyíl jelzése alapján, az interneten keresztül eljutunk a webszerver számítógéphez, amin a kért oldal található. Természetesen közben történik még pár dolog, amiket a fenti ismertetésekben leírtunk, azaz elmegy a beírt cím a DNS szerverhez azonosításra, majd továbbít bennünket a webcímhez tartozó IP címre. Az index oldal az adott webhely fő oldala. A neve is index.html, vagy index.php, stb.. attól függően, hogy milyen technológiával készült az oldal. Ha az adott webhelyen van index oldal, akkor a főoldal megjelenítéséhez elegendő csak a tartomány nevét beírni, pl.: www.pentaschool.hu. Ha a gyökérkönyvtárban akarunk elérni egy elemet, ami nem az index oldal, akkor meg kell adnunk a tartománynév után az elem nevét is, ami perjellel kezdődik, pl.: www.pentaschool.hu/rolunk.php. Ha például a webhely egyik alkönyvtárán belül jelenítünk meg egy elemet, akkor a teljes elérést meg kell adni, pl.: http://www.pentaschool.hu/teszt/allami.php . Az index oldal tehát a webhely legfőbb lapja, ami alapértelmezettként megjelenik, ha beírjuk a böngészőbe a tartománynevet.

A szerver gépen fut a webszerver program. Ez jelen ábránkon egy Apache webszerver, mivel az oktatásban is ezt fogjuk használni. A webszerverünk előkeresi a kért dokumentumot, majd 'végigolvassa' a tartalmát. Ha nem talál benne szerveroldali kódot, azaz jelen esetünkben Php kódot, akkor egyből mehet vissza a megjelenítendő oldal a kliensek felé, azaz Végső HTML kimenet lesz. Ha a webszerver Php kódot talál, akkor lefuttatja a Php értelmező programot. A Php értelmező elvégzi a Php kódban megadott műveleteket, majd a kész oldalból itt is Végső HTML kimenet lesz. Itt elhelyeztünk még egy adatbázist is az ábrán, mert az oktatásban lesz adatbázis feladat. A Php értelmező lekérdezi az adatokat az adatbázistól, ha van erre vonatkozó művelet a Php kódban, majd elhelyezi a HTML kódban a kapott eredményt és ezután lesz az oldalból Végső HTML kimenet. Természetesen az adatbázissal történő kommunikáció csak akkor jön létre, ha erre utasítást adunk a Php kódban, azaz valamilyen adatbázis kezelő műveletet hozunk létre. Ha nem, akkor az adatbázis kapcsolat kimarad. A végső HTML oldal az interneten keresztül visszakerül a kliens gép böngészőjébe és a böngészőben a felhasználó előtt megjelenik a kért webhely tartalma.

NAGYON FONTOS megértenünk azt, hogy a 2.-3. leckében, amikor majd a webszervert telepítjük, nem csak egy programot telepítünk. Telepítjük az összes olyan alkalmazást, ami a webszerver fenti ábra szerinti zökkenőmentes működéséhez szükséges. Ez azért lehet megtévesztő, mert a webszerver egy összefoglaló név is lehet, ami egy működő webszerverre utal az összes kiegészítő programjával együtt. Szakmailag azonban a webszerver nem más, mint egyetlen szerver program, jelen esetünkben az Apache, ami magában még nem elég ahhoz, hogy Php kódokat futtassunk. Kell még egy Php értelmező is és jelen esetünkben egy MySQL adatbázis program is. A sok kis apró alkalmazásról nem is beszélve, mint például az adminisztrációs programok, banner menedzserek (reklámokhoz), vagy statisztikai alkalmazások. Most nézzük meg, hogy a Php értelmező mikor lép működésbe.

A Php működése:

Az eddigiek alapján már nagyjából kialakulhatott bennünk egy kép a Php értelmező működéséről, de most pontosítsuk ezt a tudást. A Php kódokat a Html kódok közé ágyazzuk be. Tulajdonképpen az elhelyezés lényegtelen, lehet a kód a Html kódok előtt, után, vagy közben egyaránt. Egy Html oldalon több Php kódrészlet is lehet külön-külön, vagy írhatjuk az összes kódot egybe. A Php nagy mozgásteret biztosít ezen a téren is, igazából nincsenek megkötések.

A php kódrészletek mindig egy Php nyitó tag-gel kezdődnek és egy záró tag-gel végződnek. Ez nagyon fontos, hiszen a webkiszolgáló szerver ebből fogja tudni, hogy Php kódhoz érkezett és indítani kell az értelmezőt. A Php nyelvben rendszeresített nyitó tag a következő: <?php Ezzel kezdődik minden Php kód. A záró tag a következő lesz: ?> Ezzel végződik a Php kód. A Php beállításoktól függően lehetőség van rövidített nyitó tag alkalmazására, ilyen esetekben a nyitó és záró tag-ek: <? ?> Nagyon fontos még az is, hogy ha egy Html lapon Php kódot helyezünk el, akkor a fájl kiterjesztése *.html-ről *.php-ra változik. Tehát a Php kódokat tartalmazó fájlok kiterjesztése minden esetben .php. Mielőtt folytatnánk, nézzük meg a lenti ábrát. A lenti 2. ábrán látható egy egyszerű példa, nézzük meg figyelmesen.

  1. ábra: Webszerver működése  
2. ábra: Php működése

Az ábrán tehát jól látható, hogy php kód a html kódok között helyezkedik el. A webszerver értelmezi a kódot sorról sorra és amikor elérkezik a 10. sorhoz , megtalálja a php nyitó tag-et. Innentől kezdve minden sorra futtatja a Php fordító programot egészen addig, amíg el nem érkezik a Php záró tag-hez, ami jelen példánkban a 12. sorban található. A záró tag-et követően nem alkalmazza a php fordítót egészen addig, amíg újabb nyitó tag-et nem talál. Az ábrán látható példában csak egy Php sor van a 11. sorban, ami a print függvénnyel (erről majd később tanulunk) kiírja az idézőjelekben megadott 'Üdvözöllek' szöveget. A webszerver a Php értelmezőt felhasználva elkészíti a végleges kimeneti HTML kódot, ami a lenti képen látható.

  1. ábra: Webszerver működése  
3. ábra: Php eredménye

A végleges kimeneti HTML kódban tehát jól látható, hogy már csak a kiírt szöveg jelenik meg. Ha a látogató megnézi a böngészőben az oldal forrását, akkor a fenti képen látható kódot fogja látni és a Php kódnak nyoma sem lesz benne. Ez azért van, amit eddig tanultunk, tehát a Php kód a szerver oldalon kerül feldolgozásra és a klienshez már csak az eredmény jut el, ha van ilyen. Sok olyan Php alkalmazás létezik, ahol nincs látható eredmény, például a látogatók mozgásának követése, látogatottság számláló, stb. Ezekben az esetekben a felhasználó nem is észleli, hogy valamilyen php művelet történt, hiszen nincs látható eredménye. Az előző példára visszatérve, a látogató a böngészőjében a lenti képen látható eredményt fogja kapni.

  1. ábra: Webszerver működése  
4. ábra: Böngészőben megjelent eredmény

A php értelmező működhet különálló programként a szerveren, vagy lehet a szerver programban alkalmazott modul egyaránt, ez nem befolyásolja a működés elméletét. Ezzel meg is tanultuk a Php működését, nézzük meg, hogy milyen alkalmazási területei lehetnek.

A Php alkalmazásának területei:

Itt most ki lehetne jelenteni nemes egyszerűséggel, hogy minden, ami internet. A Php ugyanis a mai formájában minden lehetséges feladatot képes gyorsan és biztonságosan ellátni, ami az interneten szükséges. Alkalmazhatjuk a nyelvet egyszerű kis scriptek formájában olyan alapvető feladatok elvégzésére, mint a dátum vagy az idő megjelenítése, de ugyanakkor felépíthetünk komplett portálokat is. A lehetőségeknek csak a képzeletünk szabhat határokat. Mindig az adott feladat határozza meg azt, hogy egy oldalon belül kell-e, és ha igen, akkor milyen mértékben kell szerveroldali technológiákat alkalmaznunk. A leggyakoribb az, amikor a weboldalaknak csak egy kis részében alkalmazzuk a Php-t, azaz elkészítünk egy vendégkönyvet, vagy számlálót, esetleg szavazást és ezt egyszerűen beágyazzuk a HTML forrásba. Készíthetünk olyan dinamikus weboldalakat, vagy webes vásárlói felületeket, amelyek teljes mértékben adatbázisból táplálkoznak, és ilyen esetekben már az egész oldal felépítésének a Php lesz az alapszerkezete. Minden projektnél gondoljuk át alaposan, hogy mit szeretnénk elérni és megvalósítani és ennek megfelelően alkalmazzuk a Php-t.

Php-s webtárhelyek az interneten:

Mint azt említettük korábban, a 2. és 3. leckében lesz szó arról, hogy hogyan lehet beüzemelni egy webszervert a saját gépünkön. Természetesen lehetnek olyan tanulók, akik nem tudnak, vagy nem akarnak saját gépükre szervert telepíteni, az Ő számukra készült ez a kis leírás. A leckékben készített Php programok tesztelésére szükség lesz egy olyan webszerverre, ami képes a Php kódok értelmezésére és lehetőleg rendelkezik MySQL adatbázissal is. Erre a szerverre fel kell másolnunk az elkészített programokat. Azt a tárterületet, amit erre a célra használhatunk, web-tárhelynek nevezzük. Igényelhetünk saját tárhelyet ingyen, különböző webszolgáltatóknál. Néhány példa: Ultraweb, Freeweb, LZD.Hu, CJB Network, Atw.hu. Az ingyenes tárhelyeknek természetesen megvan a maga hátránya. Legtöbbször reklámokkal díszítik az oldalakat és jogukban áll a tartalmat auditálni és indoklás nélkül törölni adott esetekben.

A másik lehetőség a fizetős webtárhely. Ebben az esetben bérelhetünk egy webtárhelyet havi vagy évi fix összegért, és ennek megfelelően kapunk egy tárhelyet a megrendelt szolgáltatásokkal. Itt az ár fogja meghatározni azt, hogy a tárhelyünk mekkora fizikai méretekkel bír, milyen extra szolgáltatásokat kapunk, mint pl. webmail, adatbázis, szerver oldali lehetőségek, stb. Ilyen szolgáltatók például a következők: Worldinternet, Webenlét, Tárhelyek.hu, Intrex hosting, Aisthesis. Az ilyen bérelt tárhelyeken már szabadon rendelkezünk a tartalmak felett és a megengedett kereteken belül és a szabályok betartásával bármit publikálhatunk.

Az egyik legköltségesebb lehetőség a saját szerver üzemeltetése. Itt elsősorban vásárolni kell egy webszervert a boltban, ami nem más, mint egy komplett számítógép, megbízható komoly hardverekkel, nagy tárkapacitással és gyors, sokszor dupla processzorral. Az így vásárolt szervert ezután beállíthatjuk egy szolgáltató szerver termébe, ahol havi vagy évi fix összegért üzemelhet a szerverünk. Ezt azonban már mi tartjuk karban, mi ellenőrizhetjük és akár lehetünk tárhely szolgáltatók is. A webszervert beállíthatjuk a szobánkba is, ha az internetkapcsolatunk elég gyors és megfelel a várható forgalom elvárásainak. Ehhez hasonló megoldás lesz az, ami a 2. és 3. leckében szerepel, azaz a saját webszerver telepítése.

Ezzel el is érkeztünk a lecke végéhez. Megismerhettük a Php történelmét a kezdetektől egészen napjainkig. Megtanultunk néhány alapfogalmat, amikre szükségünk lesz a munkák során. Ezután a webszerver és a php működésével foglalkoztunk. A következő leckében megismerjük, hogy hogyan lehet saját webszervert telepíteni a számítógépünkre Windows operációs rendszeren.




    Feladatok:

  1. Ki volt a PHP/FI megalkotója és mikor született meg a nyelv?
  2. Mi a PHP/FI rövidítés jelentése és milyen célból született a program?
  3. Kik vettek részt a Php 3 fejlesztésében és mik voltak az alapvető újdonságok?
  4. Mi volt a Php 3 legnagyobb lehetősége és hogyan érintette ez a programozói társadalmat?
  5. Milyen motor hajtotta a Php 4-et, mi volt a neve és kik készítették?
  6. Jelenleg melyik a legfrissebb Php verzió és honnan lehet beszerezni?
  7. Mit takar a TCP/IP protokoll kifejezés és hogyan működik ez a kapcsolat?
  8. Mi a szerepe az interneten a DNS szervernek és hogyan működik?
  9. Mik azok a szerver oldali alkalmazások és hogyan működnek?
  10. Hogyan működik a webszerver és kliens közötti kommunikáció (részletesen)?
  11. Amikor arról beszélünk, hogy webszerver, akkor szakmailag mire gondolunk?
  12. Mi az a végleges kimeneti HTML kód, és hol keletkezik?
  13. Mikor lép működésbe a Php értelmező és hogyan jelentkezik ez az eredményben?

A válaszokat és a megoldásokat a belső üzenő rendszeren belül lehet elküldeni. Az elméleti válaszokat txt vagy doc formában a megoldásokkal együtt egybe tömörítve (rar, zip) lehet csatolni. A csatolt állományok nevében nem szerepelhetnek ékezetes vagy speciális karakterek és szóközök.




A Pentaschool Oktatási Központ bármely dokumentumának vagy dokumentum
részletének másolása kizárólag a tulajdonos írásos engedélyével történhet!

Copyright 2002-2003 Pentaschool Bt.
Minden jog fenntartva.

 
Címünk: 1051 Budapest, Sas utca 25. VI. em. Telefon/Fax: (1) 472-0679 E-mail nekünk