session_set_save_handler
(PHP 4 )
session_set_save_handler --
Felhasználói szintű munkamenet tároló függvényeket állít be
Leírás
void
session_set_save_handler ( string open, string close, string read, string write, string destroy, string gc)
A session_set_save_handler() beállítja a
programozó által PHP-ben megírt munkamenet tároló függvényeket.
Ezeket használja majd a PHP a munkamenet adatainak tárolására
és lekérdezésére. Ez a lehetőség akkor hasznos, ha a PHP által
kínált módszerek nem megfelelőek. Másfajta tárolás lehetséges
az adatok lokális adatbázisban történő rögzítésével.
Megjegyzés:
A php.ini session.save_handler beállítását
mindenképpen user értékre kell állítanod,
hogy a session_set_save_handler() függvény
hívásának legyen hatása.
Megjegyzés:
Az írás kezelő csak a PHP program kimenetének elküldése
után hívódik meg. Ezért az írás kezelőben a böngésző
számára kiírt, tipikusan hibakeresést szolgáló adatok
nem lesznek sohasem láthatóak a böngészőben. Ha a
hibakereséshez adatok kiírása szükséges, javasolt
napló állomány használata erre a célra.
Az alább látható példa állmoány alapú munkamenet adat
tárolást valósít meg, hasonlóan a PHP alapértelmezésű
files kezelőjéhez. Ez a példa
könnyen kiterjeszthető egy adatbázis tárolást alkalmazó
kezelővé, felhasználva a kedvenc adatbáziskezelőd
függvényeit.
Az olvasó függvénynek mindig karaktersorozattal kell
visszatérnie, hogy a mentést végző kezelő helyesen működjön.
Üres karaktersorozattal kell visszatérni, ha nincs
adat, amit olvasni lehetne. Más kezelők visszatérési
értékei logikai típusúvá alakulnak. Igaz értéket
kell visszaadni siker estén, hamisat hiba esetén.
Példa 1.
session_set_save_handler() példa
<?php
function open ($save_path, $session_name) {
global $sess_save_path, $sess_session_name;
$sess_save_path = $save_path;
$sess_session_name = $session_name;
return(true);
}
function close() {
return(true);
}
function read ($id) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
if ($fp = @fopen($sess_file, "r")) {
$sess_data = fread($fp, filesize($sess_file));
return($sess_data);
} else {
return(""); // Itt mindenképpen "" a visszatérési érték.
}
}
function write ($id, $sess_data) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
if ($fp = @fopen($sess_file, "w")) {
return(fwrite($fp, $sess_data));
} else {
return(false);
}
}
function destroy ($id) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
return(@unlink($sess_file));
}
/*********************************************
* FIGYELEM - Itt mindenképpen meg kell *
* valósítani valamiféle szemétgyűjtést. *
*********************************************/
function gc ($maxlifetime) {
return true;
}
session_set_save_handler ("open", "close", "read", "write", "destroy", "gc");
session_start();
// Ezután hagyományosan használható a munkamenet
?> |
|