Tache à la destruction de session
voila j'ai une tache a effectuer lors de la destruction de session
pour cela je me suis tourner vers session_set_save_handler
fonction d'activation de la session et du save_handler
Code:
1 2 3 4 5 6 7 8 9 10 11
|
function IsClientConnu(){
ini_set("session.save_handler", "user");
session_set_save_handler ("_open", "_close", "_read", "_write", "_destroy", "_gc");
session_start();
Diapo_NouveauUtilisateur($Diapo_id);
[...]
} |
juste au dessus les fonctions de session que j'ai repris du net :p
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
function _destroy ($id) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
// test
$sess_data = fread($fp, filesize($sess_file));
if ($fp = @fopen("$sess_save_path/log.txt", "w")) fwrite($fp, $sess_data);
// test
/* fonction de suppression d'utilisateur */
Diapo_SupprimerUtilisateur($sess_data['Diapo_id']);
return(@unlink($sess_file));
}
function _gc ($maxlifetime) {
// test
global $sess_save_path;
if ($fp = @fopen("$sess_save_path/log2.txt", "w")) fwrite($fp, $maxlifetime);
// test
return true;
}
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(""); // Doit retourner "" ici.
}
}
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);
}
} |
Comme vous pouvez le voir j'ai mis quelques fonctions de test comme il est dit qu'aucune ecriture (echo,print) n'est possible pdt l'execution de ses fonctions
Hors je n'ai aucun test qui marche, de même que ma fonction Diapo_SupprimerUtilisateur();
J'ai regler mon php.ini comme suit :
session.cookie_lifetime = 120
; 2Minutes
session.gc_maxlifetime = 120
; 2Minutes
session.cache_expire = 3
; 3Minutes
Aurais je loupé un truc ?
Plleeeaaase Heeeelp :D