Web Tervezés - 8. Fejezet

PHP III.

Paraméter átadás

Két gyakran használt módja weboldalak közötti paraméter átadásnak a GET és a POST paraméterek használata.
A GET paraméterek az URL végén találhatóak egy ? jellel elválasztva az URL-től. A paraméterek egymástól az & jellel vannak elkülönítve.
Egy paraméter egy kulcs-érték pár lehet = jellel elválasztva egymástól. Az értéket el is hagyhatjuk.
Példák: valami.hu/blog?id=31, valami.hu/keres?nev=joska&varos=szeged.
A POST paraméter a HTTP üzenet törzsében található.
Ezeknek a formátuma többféle is lehet, a HTTP üzenet Content-Type fejléce szabja meg.
Leggyakoribb a application/x-www-form-urlencoded, mely hasonló a GET paraméterek kódolására.
Ha bináris adatot akarunk küldeni (például fájl feltöltés), akkor mindenképpen POST paraméterben kell küldenünk, és multipart/form-data content-type-ot kell megadnunk a form-on.

Adatok küldése POST paraméterben form-on keresztül:
Adatok küldése GET paraméterben linken keresztül:
Paraméterek vizsgálata és lekérdezése:

Függvények

Definiálhatunk függvényeket önmagukban is (hasonlóan mint C/C++-ban).
A globális scope-ban létrehozott függvények egyből létrejönnek, így már a definiálásuk előtt meghívhatóak.
A ellenkező esetben csak akkor jönnek létre a függvények, ha a végrehajtás eljut hozzájuk (pl IF-ben vagy függvényen belül definiált függvény, lsd. példák a linken).
A függvény paraméterei alapértelmezetten érték szerint adódnak át (kivéve objektumok, ott referencia van). Ezt a & jel kirakásával módosíthatjuk.
A C++-hoz hasonlóan PHP is támogatja a függvények alapértelmezett paraméterezését. Default értékben megadható bármi (objektum, tömb, ...).
A paraméterek típusa nem kötött, de type hint-ek segítségével megadhatjuk. Ha nem a megadott típusú értéket adunk meg paraméterül, akkor hibát fog eredményezni.
Használhatunk VLA paramétereket is (változó méretű argumentum lista). Az univerzális PHP tömbbel nagyon könnyen kezelhetjük az ilyen paramétereket.
Lehetőség van egy tömb elemeit megadni függvény paraméterekként, hasonló szintaxissal
Alapértelmezetten érték szerint tér vissza a függvény. Úgy alkalmazhatjuk a referencia szerinti visszatérési értéket, hogy a függvény neve elé kitesszük az & jelet, valamint a függvény hívásánál is alkalmazzuk.
A változó változókhoz hasonlóan létezik változó függvény is. Az ötlet mögötte ugyan az: egy változóban tároljuk a függvény nevét, majd a megfelelő helyen a változó értéke alapján meghívjuk az adott függvényt.
Az anonym függvények hasonlítanak a sima függvényekre, de nem rendelkeznek saját azonosítóval, névvel.
Egy változóban tudunk hivatkozást eltárolni ezekre a függvényekre, és a változón keresztül hívhatjuk később.
Ahogy a lenti példában is látható, előfordulhat, hogy egy anonym függvényben egy, a scope-ján kívül eső változót szeretnénk elérni.
Ilyenkor beszélünk változó öröklésről. A függvény paraméter listája után írt a use kulcsszóval tehetjük ezt meg, ilyenkor elérhető a változó a függvényen belül.
Az alap viselkedés az érték szerinti örölés, de lehetőség van referencia használatára is, mint ahogy a példa mutatja.

Űrlap validálás

Az űrlapon keresztül kapott adatokra érdemes megszorításokat alkalmazni. Ilyen lehet például a kötelező mező, maximum string hossz, stb.
Az űrlapok HTML elemein is használhatunk attribútumokat erre a célra (vagy akár javascriptet is), de szerver oldalon is szükséges elvégezni a validációt.
Ennek a legegyszerűbb módja, hogy az input feldolgozása előtt megvizsgáljuk a megfelelő paraméterek értékét, és ennek megfelelően visszajelzünk a felhasználónak.

Feladat

Egészítsd ki a bejelentkező űrlapot szerver oldali kóddal.
Írasd ki a belépési adatokat az űrlap elküldése után.
Konstansként letárolt felhasználónév-jelszó páros alapján írasd ki, ha sikeres a bejelentkezés.

Feladat

Hozz létre egy harmadik oldalt is a bloghoz, melyen egy regisztrációs űrlap található.
Rakj validációt az űrlapra.
Mezők: