PHP IV.
Fájlkezelés
Fájlok kezelésére többféle lehetőségünk is van.A legáltalánosabb a C-szerű megközelítés. Ha a fájlt soronként akarjuk beolvasni egy tömbbe, vagy az egész fájl tartalmát egy stringként tárolni, akkor használhatunk egyéb beépített eljárásokat is erre a célra. Továbbá lehetőség van objektum orientált fájlkezelésre is.
Sok esetben nem elegendő, ha soronként egy string-et tárolunk le.
Összetettebb adatok tárolására egy lehetséges megoldás, ha vesszőkkel elválasztva írunk ki adatokat egy sorba.
Ilyenkor ügyelni kell rá, hogy nem lehet vessző a kiírt adatokban, mert akkor később nem tudjuk beolvasni.
Egy fokkal jobb megoldás, ha egy adatsorhoz tartozó értékeket egy tömbbe rakjuk bele, és ezt a tömböt sorosítva íratjuk ki a fájlba.
Ezt kétféleképpen is megtehetjük: serialize/unserialize vagy json_encode/json_decode.
Menetkövetés\viszonykövetés\session
Szerver oldalon fájlok nélkül is tárolhatunk adatokat a felhasználóról (rövid élettartammal).Ezt hívják menetkövetésnek (session). A kliens az oldal megnyitásakor kap egy azonosítót (session id), melyet ezután minden megnyitásnál elküld a szervernek.
A szerver pedig az azonosító alapján adatokat rendel a felhasználóhoz. Általában ez az azonosító egy sütiként tárolódik, de az url végére írva GET paraméterként is átadható, illetve formokban egy rejtett mező is szolgálhat erre a célra.
Egy session általában a böngésző bezárásáig él.
A PHP több beépített függvényt is tartalmaz a session kezelésére. A session tartalmát a $_SESSION globális változóból érhetjük el.
Ahhoz hogy legyen session-ünk, a session_start eljárást kell meghívnunk.
Ez létrehozza a session-t, generál egy azonosítót, és beállítja a válasz üzenetben a megfelelő sütit.
Amennyiben már létezik egy session id (megkapta a szerver sütiként), akkor betölti a hozzá tartozó adatokat.
Ebben az esetben is fontos, hogy ne legyen semmilyen kimenet a session létrehozása előtt, mert akkor nem tudja beállítani a fejlécet.
A session kiválóan alkalmas bejelentkezési állapot tárolására. Például beállíthatjuk a felhasználó azonosítóját, mely ezután minden kérés során elérhető lesz.
A session megszűnése esetén a felhasználó kijelentkezett állapotba kerül.
A session_unset és session_destroy eljárásokkal kiüríthetjük, és törölhetjük a sessiont, ami alkalmas a felhasználó manuális kijelentkeztetésére.
Feladat
Bővítsd ki a bejelentkezős űrlap logikáját, hogy egy fájlból beolvasott felhasználó lista alapján validálja az űrlapot, és írjon ki hibát, ha nem található a felhasználónév.Feladat
A regisztrációt követően mentsd el a fájlba a felhasználó adatait.Feladat
A sikeres bejelentkezést követően tárold el az állapotot session segítségével.Bejelentkezett felhasználó esetén rejtsd el a bejelentkezési űrlapot, írd ki helyette a felhasználó adatait, és jeleníts meg egy kijelentkező gombot.