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 nyelven jelenjen meg, akkor sütivel eltárolható a felhasználó beállítása. Létrehozás: –setcookie($name,$value,$expire,$path,$domain,$secure,$httponly); Törlés: –setcookie($name); Elérés: $_COOKIE[$name]
Példák setcooke(”id”,”67483”,0,‘/’,” Az ”id” nevű sütit ”67483”-ra állítja, a böngésző bezárásával törlődik, a címen és annak összes oldalán elérhető. $id = $_COOKIE[‘id’]; setcookie(”lang”,”eng”,time()+60*60*24*365); A ”lang” nevű süti értéke ”eng”, lejárai ideje 1 év, a teljes domain-en. $lang = $_COOKIE[‘lang’];
Feladatok if (isset($_POST['user'])) { $user = $_POST['user']; setcookie('user', $user, time()+60*60*24*365); } else if (isset($_COOKIE['user'])) { $user = $_COOKIE['user']; } else $user = "ismeretlen"; echo "Üdvözöljük $user "; echo " "; echo "Név: "; echo " ";
Munkamenet A GUI a felhasználó gépén, a program, funckiók a szerveren fut. A kettő között valamiféle kapcsolat van: állapotok, változók, beállítások, stb. Munkamenet = session Az állapotokat a szerveren tároljuk, a felhasználó csak egy ”id”-t (sessionid) tárol. A változók tárolását során serialize() és unserialize() függvényekkel végzi. Indítás: session_start(); Session változó létrehozás: $_SESSION[‘count’] Változó törlés: unset($_SESSION[‘count’]) Session megszüntetés: session_destroy();
Feladatok session_start(); if (isset($_SESSION[‘click’])) $_SESSION[‘click’]++; else $_SESSION[‘click’] = 0; $site = $_SERVER[‘PHP_SELF’]; echo ” Click ”; echo ‘Counter: ‘. $_SESSION[‘click’];
Feladatok Készítsünk üdvözlő oldalt, mely egy egyszerű üdvözlő üzenetet ír ki. Az oldal nyelve választahó legyen (magyar, angol, német), melyet HTML select-tel állítsunk be (languages.sql). Az oldal jegyezze meg a felhasználó beállítását 1 évig. Készítsünk beléptető oldalt, mely felhasználó nevet illetve jelszót kér és adatbázis (users.sql) alapján ellenőrzi. Sikeres belépés esetén egy tetszőleges másik oldalra irányít a következő paranccsal: –header(‘Location: –Cím a $_SERVER tömb alapján hozható létre (redir.php)