A PHP rövid története
Erről nem írok semmit. Maradjunk annyiban, hogy 1994-től merült fel a probléma, amire 1995-től létezik a nyelv. Jelenleg a 8.xx verziónál tartunk.
Mi a PHP?
Egy majdnem általános célú programozási nyelv, amely mára sokféle területen alkalmazható, amit a Weben keresztül meg lehet oldani. Dinamikus oldalak, adatbázis-kezelés, akár ügyviteli alkalmazások, levelezés, portálok, grafikai alkalmazások, file-kezelés, távoli adminisztráció, stb.
Jellemző tulajdonságai
A program egy vagy több szimpla szövegfájl, amit nem kell lefordítani.
A programok egy szerveren, általában WEB szerveren futnak.
A szerver értelmezi a programsorokat és lefuttatja azokat.
A programok kimenete olyan szöveg fájl, amit a webszerver kiküld a böngészőnek
A böngésző a megkapott szöveget HTML oldalként értelmezi és ennek alapján megjeleníti.
A böngésző és a szerver közötti kommunikáció folyamata:
A böngészőbe a felhasználó beír egy URL-t,L rákattint egy linkre, ekkor úgynevezett GET metódusú kérést küld el a böngésző a szervernek, vagy egy űrlapon rákattint az elküldés gombra, ekkor POST metódusú kérést küld a szervernek a böngésző. A kérés tulajdonképpen egy adatcsomag. A kérés részei:
A kérésben elmegy az URL, a metódus fajtája (POST vagy GET), a használandó protokoll (HTTP 1.0 vagy HTTP 1.1)
POST metódus esetén a kérésben elmennek az űrlapban kitöltött adatmezők adatai
A böngésző neve, és speciális tulajdonságai
A böngésző által lekezelni képes speciális adatfajták szabványos nevei
A böngészőben tárolt és az adott domainhez tartozó cookie-k adatai
Ha az URL a szerveren .html, .htm ,.gif, .jpg, .AVI, .mpg, stb… file-t jelöl meg, akkor a WEBszerver kikeresi a saját háttértárán a megfelelő fájlt és elküldi a böngészőnek különböző plusz, úgynevezett fejlécadatok (header) kíséretében. A headerben lévő adatok az alábbiak lehetnek:
A kódolás nyelve, a cache-ek működésére vonatkozó parancsok,
Az esetlegesen elküldendő cookie-k
A SESSION-ökhöz tartozó un. session cookie-k.
Ha az URL .php kiterjesztésű file-t jelöl, akkor a webszerver átadja az URL-t a PHP motornak.
A PHP motor megkeresi a háttértáron a megadott file-t
Betölti szintaktikailag ellenőrzi a betöltött php file tartalmát, majd elkezdi értelmezni és végrehajtani azt.
Ha szükséges a PHP-hez konfigurált egyéb modulokat elindít, kommunikál velük, mint pl. egy SQL szerver
A PHP kód segítségével a kimenetre lehet küldeni header parancsokat, cookie-k és session-ök adatait, mielőtt bármi HTML kódot kiküldene a PHP motor.
A végrehajtás során a PHP oldalakon keverni lehet a HTML és a PHP kódot. Ha az értelmező HTML kód részt talál, akkor azt a kódot kiküldi a kimenetre változatlanul.
A program futása során kiíró utasításokkal előállítja a HTML kimenetet és kiküldi a kimenetre.
A PHP motor által előállított HTML kimenetet a webszerver kapja meg.
A WEbszerver a tartalmat kiküldi a böngészőnek.
A böngésző a megkapott információt betölti és értelmezi.
Ha a kódban javascript, java vagy egyéb nem kifejezetten HTML kód található, akkor a böngésző elindítja a kliens számítógépre telepített megfelelő feldolgozó modult.
Egy HTML és egy PHP oldal szerkezete
Mielőtt továbbmennénk nézzük, mit akarunk programozni? Hogyan is néz ki egy HTML oldal:
<!DOCTYPE HTML>
<HTML>
<HEAD>
<title>az oldal címe</title>
</HEAD>
<BODY>
Próba web oldal
</BODY>
</HTML>
Na ez nagy durranás volt. A kisbetű-nagybetű kérdés nem számít. A bekezdéses írásmódot az áttekinthetőségért használok, de mint látjuk később, ez rendkívül fontos! A böngészők a sor vége jelet, a szóközöket és a tabulátor jeleket kihagyják, ezért akár az egészet egy sorba is írhatnánk. A fenti HTML oldalt az alábbi php scripttel tudjuk előállíttatni:
<!DOCTYPE HTML>
<HTML>
<HEAD>
<title>az oldal címe</title>
</HEAD>
<BODY>
<?php
echo "Próba web oldal";
?>
</BODY>
</HTML>
Az igazi kód itt van:
Tisztán látszik, hogy a program és a a weboldal szerkezete nagy vonalakban ugyanaz, de azért vannak különbségek. A PHP értelmező a kód első sorait változatlanul továbbítja a Web szervernek, de amikor a <?php tag-hez ér, értelmezi az ott lévő sorokat, és az echo paranccsal kiírja a Web szerver felé az echo utáni szöveget.
A következő sorban lévő ?> tag jelzi az értelmezőnek a PHP script végét.
Egy oldalon többször is megnyithatjuk a scriptet és bezárhatjuk, azaz keverhetjük a php és a HTML kódot.
Az alábbi lehetőségeink vannak arra, hogy php scriptet helyezzünk el egy oldalon: