Services webmasters
Partenaires
Jeux concours gratuits
 
session_set_cookie_params
<<<
session_set_save_handler session_start
>>>

7.94 Sessions
7 Index des fonctions
 Manuel PHP

Introduction
Sessions et sécurité
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes prédefinies
Exemples
Passer l'identifiant de session (session ID)
Gestion personnalisée des sessions
session_cache_expire
session_cache_limiter
session_decode
session_destroy
session_encode
session_get_cookie_params
session_id
session_is_registered
session_module_name
session_name
session_regenerate_id
session_register
session_save_path
session_set_cookie_params
->session_set_save_handler
session_start
session_unregister
session_unset
session_write_close

7.94.25 session_set_save_handler() Configure les fonctions de stockage de sessions

[ Exemples avec session_set_save_handler ]   PHP 4

bool  session_set_save_handler ( string   open , string   close , string   read , string   write , string   destroy , string   gc )

session_set_save_handler configure les fonctions de stockage de session, et permet de choisir des fonctions utilisateurs pour sauver et relire toutes les sessions. Cette fonction est très pratique lorsqu'il faut sauver les données de sessions en utilisant une autre technique que le système par fichier fourni par défaut : notamment, stockage en base de données, ou dans des démons tels que le SRM . Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note

Le gestionnaire d'écriture n'est pas exécuté tant que le flot de sortie est ouvert. Par conséquent, l'affichage de messages de debogage durant le gestionnaire d'écriture ne sera donc jamais visible depuis le navigateur. Si vous avez besoin de débogage, nous vous suggérons d'écrire vos messages dans un fichier.

Note

Le gestionnaire d'écriture n'est pas appelé s'il n'y a pas de données dans la session. Cela s'applique aussi si des variables de sessions vides sont enregistrées. Cela diffère du comportement du système de gestion des sessions par fichier, qui crée un fichier vide dans ce cas.

L'exemple suivant fournit un exemple de stockage des sessions semblable au système par défaut : par fichier. Cet exemple peut facilement être adapté pour réaliser des sauvegardes en bases de données, avec votre serveur préféré.

La fonction de lecture doit toujours retourner une chaîne, pour que le gestionnaire fonctionne comme prévu. Vous devez retourner une chaîne vide s'il n'y a pas de données à lire. Les valeurs retournées par les autres gestionnaires sont converties en booléen avant d'être retournées au script. TRUE pour la réussite, FALSE pour l'échec.

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(
""); // 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);
  }

}

function
destroy ( color="#FF8000">/*********************************************
* ATTENTION - Vous devrez implémenter un    *
* collecteur de données obosolètes ici.     *
*********************************************/
function gc ($maxlifetime) {
  return
true;
}

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

session_start();

// Utilisez vos sessions comme d'habitude
?>

Voir aussi la directive de configuration session.save_handler .

<< session_set_save_handler >>
session_set_cookie_params Sessions session_start
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -