(PHP 4 >= 4.0.0)
session_set_save_handler --
Définit les fonctions utilisateurs de stockage des sessions
Description
void
session_set_save_handler
(string
open, string
close, string
read, string
write, string
destroy, string
gc)
session_set_save_handler() définit les
fonctions utilisateurs de stockage et chargement des sessions.
Cela est particulièrement pratique pour spécifier une autre
méthode de stockage que celle fournie en standard avec PHP.
Notamment, il est possible de stocker les sessions dans une
base de données.
Note :
Vous devez donner à l'option de configuration
session.save_handler la valeur de
user dans votre fichier php.ini pour que
session_set_save_handler() soit effective.
L'exemple suivant fournit un exemple de stockage de session
dans un fichier, similaire aux fonctions standards de PHP. Cet
exemple peut être facilement étendu pour utiliser un
stockage en base de données, en utilisant votre base préférée.
Exemple 1.
Exemple avec session_set_save_handler()
<?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("");
}
}
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));
}
/***************************************************
* ATTENTION - Vous devez implémenter une routine *
* d'entretien des sessions ici. *
***************************************************/
function gc ($maxlifetime) {
return TRUE;
}
session_set_save_handler ("open", "close", "read", "write", "destroy", "gc");
session_start();
// utilisez vos sessions normalement
?> |
|