Sommaire

Sessions

session_start
session_destroy
session_name
session_module_name
session_save_path
session_id
session_register
session_unregister
session_unset
session_is_registered
session_get_cookie_params
session_set_cookie_params
session_decode
session_encode
session_set_save_handler
session_cache_limiter
session_end
session_readonly

6.89.15 session_set_save_handler

PHP 4 >= 4.0.0

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 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(
<tt>TRUE</tt> );
}
function close() {
  return(
<tt>TRUE</tt> );
}
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(
<tt>FALSE</tt> );
  }
}
function destroy ($id) {
  global $sess_save_path, $sess_session_name;
  $sess_file = "$sess_save_path/sess_$id";
  return(@unlink($sess_file));
}
/***************************************************
clean_docs_mysql clean_docs-php debut.php docMySQL3[1].23_v4d.tar.gz docPHP4_v5d[1].tar.gz fin.php mysql php ATTENTION - Vous devez impl&eacute;menter une routine  *
clean_docs_mysql clean_docs-php debut.php docMySQL3[1].23_v4d.tar.gz docPHP4_v5d[1].tar.gz fin.php mysql php d'entretien des sessions ici.                   *
***************************************************/
function gc ($maxlifetime) {
  return
<tt>TRUE</tt> ;
}
session_set_save_handler ("open", "close", "read", "write", "destroy", "gc");
session_start();
// utilisez vos sessions normalement
?>