En ertu eitthvað fastur í php sessions, þetta er alveg einstaklega léttur hlutur…. þú þarft kannski að vita 5-6 syntaxa og þá geturu byrjað að nota þetta.
Hérna er eitthvað smá sem þú vonandi getur lært ef ég er ekki of málhalftur..
session_start(); //alltaf á síðum sem þú þarft að byrja á einhverju session þá byrjaru alltaf á þessu..
session_register(); //registerar tilgreinar breytur í sessionin
session_is_registered(); //hefur þetta í IF setningu og betra að nota í staðinn fyrir isset vegna öryggis
session_unregister(); // eyðir viðkomandi breytu úr sessioninu þínu
session_unset(); // er alveg eins og unregister nema ég skal segja þér muninn á eftir
session_destroy(); //og þetta líka..
Og svo er gott að nota breytuna $HTTP_SESSION_VARS["nafn"] til þess að prenta út til vafrans innihald sessonanna..
Dæmi:
Þú ert með innskráningu og slærð inn notendanafn og password og síðan ertu með síðu sem slær þeim upp í mysql eins
og t.d.:
SELECT * FROM nafnatafla WHERE user = ‘$user’ AND password = password('$lykill');
Svo ef hún finnur eitthvað… þá er að resistera sessionin
Segjum bara að þú hafi náð í semsagt passwordið og notendanafnið og fullt nafn og tja kannski aðgangslykill sem
við höfum bara …..admin :) og að sjálfsögðu einhvern ID (við höfum það hérna nid) númmer
Session_start(); //á þessu byrjum við alltaf á ef við erum að vinna með session
session_register(“nid”,“user”,“nafn”,“adgangur”);
Þá geturu vafrað um siðuna innskráður þar sem þú villt að sjáist ekki nema þú sért innskráður eins og t.d. linkur
sem þú geturu skrifað nýja frétt:
session_start();
if(session_is_registered(“nid”){
echo “<a href=”skrifafrett.php“>skrifa nýja frétt</a>
}
else
{
echo ” þú verður að vera innskráður til þess að geta skrifað frétt“;
}
Dæmi um að nota aðgagnslykil að einhverju sem aðeins admin en ekki innskráðir geta séð
if(session_is_registered(”nid") AND ($HTTP_SESSION_VARS["adgangur"]==admin))
{
Eitthvað sem adminin má aðeins sjá eins og t.d. banna notanda :)
}
else
{
þú verður að hafa réttan aðgangslykil til þess að vera hérna…. whatever
}
Dæmi: Af hverju ekki að bjóða manninn velkominn eða eitthvað!
if(session_is_registered(“nid”)
{
echo "Velkominn $HTTP_SESSION_VARS["nafn"]“;
}
echo ”Þú átt eftir að innskrá þig!!“;
Og svo er komið að útskráningu:
Byrjum að sjálfsögðu á…
session_start();
session_unregister('nid');
session_unset('nid');
session_unregister('user');
session_unset('user');
session_unregister('nafn');
session_unset('nafn');
session_unregister('adgangur');
session_unset('adgangur');
session_destroy();
Endilega notiði bara alla syntaxanna ef þið eruð að útskrá notanda
Eins og ég sagði áður þá virkar þetta allt eins…. en þó er smá hængur á …
þið gerið alltaf unregister en þegar þið gerið það þá eyðir þið breytunni úr sessioninu en
þó ekki breytunni sjálfri þannig að það væri þessvegna hægt að registera hana aftur inní sessionið með session_register en með unset og destroy þá eyðið þið líka út innihaldi breytunnar…
Hafið þið einhverntímann lent í að útskráning hefur ekki tekist hjá ykkur, þið eruð ennþá innskráð?
Ég held alveg örugglega að það sé hægt að rekja til þess að það er bara notað unregister en ekki unset og destroy
og svo eruð þið ekki að nota
if (session_is_registerd(”breyta“); heldur bara if (isset(”$breyta“);
Fyrri if setningin myndi virka og þú myndir ekki vera innskráður af því að hún tjékkar á sessionnafninu $breyta en hin aðeins breytunni sjálfri og þar sem þið notuðu ekki unset og destroy þá er breytann ennþá fyrir hendi og þessvegna eru þið ennþá ”innskráð"..
Fleiri syntaxa geturu séð á
http://www.php.net/manual/en/ref.session.phpÉg hef ekki þurft að nota neina aðra syntaxa en þá sem ég tilgreindi hérna..