Segédletek.hu
Segédletek weblap szerkesztéshez!
Fórum:
Postaláda:
Szavazás:
Hány éves vagy?
Segédletek:
Linkek:
sessionok kezelése phpben:
A sessionok nagy szerepet játszanak php - ben, a felhasználókkal való kapcsolattartás során. Ebben a segédletben róluk lesz pár szó.
Mi is az a session (magyarul munkamenet) ?
A mnkamenetek egy egyedi azonosítót biztosítanak a felhasználóknak, ezen keresztül lehet információkat oldalról oldalra vinni. A HTTP protokoll működési elve miatt van rájuk szükségünk. Ugyanis a kommunikáció úgynevezett requestekkel folyik a HTTP protokollban. A böngésző (kliens) küld egy kérést (request) a szervernek, és a szerver visszaküld információkat. Ez minden egyes lap letöltésnél lezajlik, így a kapcsolat nem folyamatos. Akkor honnan tudná a szerver, hogy éppen melyik felhasználóval kommunikál...
Ezért találták ki a munkameneteket, hogy biztosítsák az adatok továbbítását. Minden egyes munkamenet létrehoz egy file - t a szerveren, egy egyedi azonosítóval. Ebben tárolja az aktuális változókat. Kliens oldalon ez az egyedi azonosító (session id) vagy sütiben , vagy a böngésző címsorában(ez a ritkább) tárolódik. Így minden kliens egyedi kulcsot kap, amihez csak ő fér hozzá, és ezzel a kulccsal tud a szerveren az egyik lapról a másikra információt átvinni.
Ennyit az elméletről, akit érdekel részletesebben a HTTP protokol működése, annak ajánlom ezt :http://www.w3.org/Protocols/
sessionok megvalósítása php - ben:
A php - nek vannak függvényei a sessionok kezelésére. Ha szeretnénk használni őket, akkor az aktuális fájl elején el kell helyeznünk a következő sort:
Ami nagyon fontos az az, hogy ez előtt a sor előtt ne legyen semmi a fájlban. Még //komment se, semmi.
Ha elindítottuk a sessiont, akkor php - ben van egy szuperglobális tömb, ez a $_SESSION tömb. Ebben a tömbben lesznek a session változóink tárolva.
Változót így hozhatunk létre: $_SESSION['valtozonev'] = "valtozo_ertek";
és így hivatkozunk rá: print $_SESSION['valtozonev'];
Nézzünk egy egyszerű példát, írjunk egy számlálót!
counter.php
Ez nem csinál mást, mint session segítségével létrehoz egy változót, $_SESSION['counter'] és ebben tárolja az aktuális számértéket, amit minden egyes kattintáskor növel. Ez egy nagyon egyszerű példa, de ez még mindig csak egy lapon történik.
Most írjunk egy programot, ami az egyik lapon bekéri egy felhasználó nevét, kirak egy linket, és a linkre kattintva a másik oldalra ugrik, és ott kiírja a nevét.
beker.php
Ezzel csináltunk egy egyszerű formot, ami bekér egy nevet, és ha elküldték a formot, akkor a $_SESSIN['nev'] változóba rakja a beírt nevet. Most csináljuk meg a kiir.php - t is, amivel kiíratjuk ezt a nevet
Ha mindent jól csináltunk, akkor a tovább linkre kattintva kiírja a nevet, amit beírtunk.
Amiről még nem esett szó, session változókat az unset() - fgv - vel tudunk tötölni.
pl: unset($_SESSION['nev'])
Ez egy jó alap az induláshoz. A következő segédletben készítünk egy beléptető rendszert a sessionok használatával.
sessionokról bővebben:
http://hu.php.net/manual/en/ref.session.php
A segédletben felhasznált php függvények:
session_start()
isset()
A mnkamenetek egy egyedi azonosítót biztosítanak a felhasználóknak, ezen keresztül lehet információkat oldalról oldalra vinni. A HTTP protokoll működési elve miatt van rájuk szükségünk. Ugyanis a kommunikáció úgynevezett requestekkel folyik a HTTP protokollban. A böngésző (kliens) küld egy kérést (request) a szervernek, és a szerver visszaküld információkat. Ez minden egyes lap letöltésnél lezajlik, így a kapcsolat nem folyamatos. Akkor honnan tudná a szerver, hogy éppen melyik felhasználóval kommunikál...
Ezért találták ki a munkameneteket, hogy biztosítsák az adatok továbbítását. Minden egyes munkamenet létrehoz egy file - t a szerveren, egy egyedi azonosítóval. Ebben tárolja az aktuális változókat. Kliens oldalon ez az egyedi azonosító (session id) vagy sütiben , vagy a böngésző címsorában(ez a ritkább) tárolódik. Így minden kliens egyedi kulcsot kap, amihez csak ő fér hozzá, és ezzel a kulccsal tud a szerveren az egyik lapról a másikra információt átvinni.
Ennyit az elméletről, akit érdekel részletesebben a HTTP protokol működése, annak ajánlom ezt :http://www.w3.org/Protocols/
sessionok megvalósítása php - ben:
A php - nek vannak függvényei a sessionok kezelésére. Ha szeretnénk használni őket, akkor az aktuális fájl elején el kell helyeznünk a következő sort:
<?php
session_start();
?>
Ami nagyon fontos az az, hogy ez előtt a sor előtt ne legyen semmi a fájlban. Még //komment se, semmi.
Ha elindítottuk a sessiont, akkor php - ben van egy szuperglobális tömb, ez a $_SESSION tömb. Ebben a tömbben lesznek a session változóink tárolva.
Változót így hozhatunk létre: $_SESSION['valtozonev'] = "valtozo_ertek";
és így hivatkozunk rá: print $_SESSION['valtozonev'];
Nézzünk egy egyszerű példát, írjunk egy számlálót!
counter.php
<?php
session_start();
if (isset($_SESSION['counter']))
{
print $_SESSION['counter'];
$_SESSION['counter']++;
print "<a href=\"counter.php\">növel</a>";
}
else
{
$_SESSION['counter'] = 1;
print $_SESSION['counter'];
print "<a href=\"counter.php\">növel</a>";
}
?>
Ez nem csinál mást, mint session segítségével létrehoz egy változót, $_SESSION['counter'] és ebben tárolja az aktuális számértéket, amit minden egyes kattintáskor növel. Ez egy nagyon egyszerű példa, de ez még mindig csak egy lapon történik.
Most írjunk egy programot, ami az egyik lapon bekéri egy felhasználó nevét, kirak egy linket, és a linkre kattintva a másik oldalra ugrik, és ott kiírja a nevét.
beker.php
<?php
session_start();
?>
<html>
<head>
<title>sessionok gyakorlása</title>
</head>
<body>
<form action="" method="post">
Név: <input type="text" name="nev" />
<input type="submit" value="mehet" name="mehet" />
</form>
</body>
</html>
<?php
if (isset($_POST['mehet']))
{
$_SESSION['nev'] = $_POST['nev'];
print "<a href=\"kiir.php\">Tovább</a>";
}
?>
Ezzel csináltunk egy egyszerű formot, ami bekér egy nevet, és ha elküldték a formot, akkor a $_SESSIN['nev'] változóba rakja a beírt nevet. Most csináljuk meg a kiir.php - t is, amivel kiíratjuk ezt a nevet
<?php
session_start();
?>
<html>
<head>
<title>Session_gyakorlás</title>
</head>
<body>
<?php
print "<h1>Üdvözöllek ".$_SESSION['nev']."</h1>";
?>
</body>
</html>
Ha mindent jól csináltunk, akkor a tovább linkre kattintva kiírja a nevet, amit beírtunk.
Amiről még nem esett szó, session változókat az unset() - fgv - vel tudunk tötölni.
pl: unset($_SESSION['nev'])
Ez egy jó alap az induláshoz. A következő segédletben készítünk egy beléptető rendszert a sessionok használatával.
sessionokról bővebben:
http://hu.php.net/manual/en/ref.session.php
A segédletben felhasznált php függvények:
session_start()
isset()
Írta: requiem - 2006-07-06 12:41:02
* Nem vagy bejelentkezve!* Nem töltheted le a segédlet forrását egyben!
* Nem szavazhatsz a segédletre!
* Nem írhatsz a segédlethez tartozó fórum témába!

