Web Development PHP Programming - Learn PHP
 Developer Newsletter

Developer Tutorials
ASP
CGI & Perl
CSS
Flash
HTML
Java
JavaScript
Linux
MySQL
PHP
Photoshop
Python
Wireless
XML


Developer Manuals
Learn HTML
Learn PHP
Learn CSS
Learn Pear
Free White Papers



Scripts Directory
ASP Scripts
ASP.NET Scripts
CGI & Perl Scripts
Flash Scripts
Java Scripts
JavaScript Scripts
PHP Scripts
Python Scripts
Remotely Hosted Scripts
Tools & Utilities Scripts
XML Scripts

Web Hosting Directory
ASP.NET Hosting
Budget Web Hosting
Dedicated Servers
Linux Web Hosting
Shared Hosting
Small Business Hosting
Windows Web Hosting

Developer Resources
Developer Tools
Developer News
Developer Content
Developer Book Reviews
Survey Software




session_set_save_handler

(PHP 4, PHP 5)

session_set_save_handler -- Sets user-level session storage functions

Description

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

session_set_save_handler() sets the user-level session storage functions which are used for storing and retrieving data associated with a session. This is most useful when a storage method other than those supplied by PHP sessions is preferred. i.e. Storing the session data in a local database.

Parameters

open

close

read

Read function must return string value always to make save handler work as expected. Return empty string if there is no data to read. Return values from other handlers are converted to boolean expression. TRUE for success, FALSE for failure.

write

Note: The "write" handler is not executed until after the output stream is closed. Thus, output from debugging statements in the "write" handler will never be seen in the browser. If debugging output is necessary, it is suggested that the debug output be written to a file instead.

destroy

gc

Return Values

Returns TRUE on success or FALSE on failure.

Examples

Example 1. session_set_save_handler() example

The following example provides file based session storage similar to the PHP sessions default save handler files. This example could easily be extended to cover database storage using your favorite PHP supported database engine.

<?php
function open($save_path, $session_name)
{
  global
$sess_save_path;

  
$sess_save_path = $save_path;
  return(
true);
}

function
close()
{
  return(
true);
}

function
read($id)
{
  global
$sess_save_path;

  
$sess_file = "$sess_save_path/sess_$id";
  return (string) @
file_get_contents($sess_file);
}

function
write($id, $sess_data)
{
  global
$sess_save_path;

  
$sess_file = "$sess_save_path/sess_$id";
  if (
$fp = @fopen($sess_file, "w")) {
    
$return = fwrite($fp, $sess_data);
    
fclose($fp);
    return
$return;
  } else {
    return(
false);
  }

}

function
destroy($id)
{
  global
$sess_save_path;

  
$sess_file = "$sess_save_path/sess_$id";
  return(@
unlink($sess_file));
}

function
gc($maxlifetime)
{
  global
$sess_save_path;

  foreach (
glob("$sess_save_path/sess_*") as $filename) {
    if (
filemtime($filename) + $maxlifetime < time()) {
      @
unlink($filename);
    }
  }
  return
true;
}

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

session_start();

// proceed to use sessions normally

?>

Notes

Warning

As of PHP 5.0.5 the write and close handlers are called after object destruction and therefore cannot use objects or throw exceptions. The object destructors can however use sessions.

It is possible to call session_write_close() from the destructor to solve this chicken and egg problem.

See Also

The session.save_handler configuration directive







About the NetVisits, Inc Network | Advertise
Developer Tutorials hosted by HostGator.
Copyright ©2007 NetVisits, Inc Network. All Rights Reserved. Privacy Policy.
Visit other NetVisits, Inc. sites: