Session Funzioni
PHP Manual

session_set_save_handler

(PHP 4, PHP 5)

session_set_save_handler Imposta le funzioni di archiviazione sessioni a livello utente

Descrizione

void session_set_save_handler ( string $open, string $close, string $read, string $write, string $destroy, string $gc )

session_set_save_handler() imposta le funzioni di archiviazione sessioni che sono usate per archiviare e riutilizzare i dati associati a una sessione. Ciò non è molto utile quando un altro metodo di archiviazione è preferito a quelli forniti dalle sessioni PHP. i.e. L'archiviazione dei dati di sessione in un database locale.

Nota:

Dovete impostare l'opzione di configurazione session.save_handler per user nel vostro file php.ini perché session_set_save_handler() abbia effetto.

Nota:

L'handler "write" non viene eseguito fino a che l'output stream non viene chiuso. In questo modo, l'output di espressioni di debugging nell'hanlder "write" non si vedrà mai nel browser. Se l'output di debugging è necessario, è consigliabile che l'output del debug venga scritto in un file.

Il seguente esempio fornisce l'archiviazione di sessione basata su file simile al solito gestore di salvataggio di sessioni PHP files. Questo esempio potrebbe essere facilmente esteso per coprire l'archiviazione in database usando il vostro sistema database favorito con supporto PHP.

La funzione di lettura deve restituire sempre un valore stringa perché il save handler funzioni a dovere. Restituisce una stringa vuota se non ci sono dati da leggere. I valori restituiti da altri handlers sono convertiti in espressioni booleane. TRUE per successo, FALSE in caso di fallimento.

Example #1 session_set_save_handler() esempio

<?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($fpfilesize($sess_file));
    return(
$sess_data);
  } else {
    return(
""); // Deve restituire "" qui.
  
}

}

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));
}

/*********************************************
 * ATTENZIONE - Qui avete bisogno di implementare qualche *
 * sorta di routine per il cestinaggio.  *
 *********************************************/
function gc ($maxlifetime) {
  return 
true;
}

session_set_save_handler ("open""close""read""write""destroy""gc");

session_start();

// proceed to use sessions normally

?>


Session Funzioni
PHP Manual