vrana Wed Sep 6 11:50:01 2006 UTC
Modified files: /phpdoc/en/reference/session/functions session-set-save-handler.xml Log: Improve example http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/session/functions/session-set-save-handler.xml?r1=1.13&r2=1.14&diff_format=u Index: phpdoc/en/reference/session/functions/session-set-save-handler.xml diff -u phpdoc/en/reference/session/functions/session-set-save-handler.xml:1.13 phpdoc/en/reference/session/functions/session-set-save-handler.xml:1.14 --- phpdoc/en/reference/session/functions/session-set-save-handler.xml:1.13 Tue Feb 14 08:22:56 2006 +++ phpdoc/en/reference/session/functions/session-set-save-handler.xml Wed Sep 6 11:50:00 2006 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.13 $ --> +<!-- $Revision: 1.14 $ --> <!-- splitted from ./en/functions/session.xml, last change in rev 1.23 --> <refentry id="function.session-set-save-handler"> <refnamediv> @@ -68,10 +68,9 @@ <?php function open($save_path, $session_name) { - global $sess_save_path, $sess_session_name; - + global $sess_save_path; + $sess_save_path = $save_path; - $sess_session_name = $session_name; return(true); } @@ -82,25 +81,21 @@ function read($id) { - global $sess_save_path, $sess_session_name; - + global $sess_save_path; + $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(""); // Must return "" here. - } - + return (string) @file_get_contents($sess_file); } function write($id, $sess_data) { - global $sess_save_path, $sess_session_name; - + global $sess_save_path; + $sess_file = "$sess_save_path/sess_$id"; if ($fp = @fopen($sess_file, "w")) { - return(fwrite($fp, $sess_data)); + $return = fwrite($fp, $sess_data); + fclose($fp); + return $return; } else { return(false); } @@ -109,18 +104,21 @@ function destroy($id) { - global $sess_save_path, $sess_session_name; - + global $sess_save_path; + $sess_file = "$sess_save_path/sess_$id"; return(@unlink($sess_file)); } -/********************************************* - * WARNING - You will need to implement some * - * sort of garbage collection routine here. * - *********************************************/ function gc($maxlifetime) { + global $sess_save_path; + + foreach (glob("$sess_save_path/sess_*") as $filename) { + if (filemtime($filename) + $maxlifetime < time()) { + @unlink($filename); + } + } return true; }