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
?> | 
 |