PHP - session_set_save_handler() 函式



定義和用法

會話或會話處理是一種使資料在 Web 應用程式的各個頁面之間可用的一種方式。session_set_save_handler() 函式用於設定使用者級別的會話儲存函式,您可以使用這些函式儲存和檢索與當前會話關聯的資料。

語法

session_cache_expire($sessionhandler [,$register_shutdown]);

引數

序號 引數和描述
1

sessionhandler(必填)

這是實現 SessionHandlerInterface 和 SessionIdInterface 介面的類的物件。

2

register_shutdown(可選)

如果您為此引數傳遞值,則 session_write_close() 將被註冊為 register_shutdown_function() 函式。

返回值

此函式返回一個布林值,成功時為 TRUE,失敗時為 FALSE。

PHP 版本

此函式首次引入於 PHP 版本 4,並在所有後續版本中有效。

示例 1

以下示例演示了 session_set_save_handler() 函式的用法。

<html>   
   <head>
      <title>Setting up a PHP session</title>
   </head>   
   <body>
      <?php  	
         function open($save_path, $session_name){
            global $session_path;
            $session_path = $save_path;
            return(true);
         }
         function close() {
            return(true);
         }
         function read($id){
            global $session_path;  
            $sess_file = "$session_path/sess_$id";
            return (string) @file_get_contents($sess_file);
         }
         function write($id, $sess_data){
            global $session_path;
            $sess_file = "$session_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 $session_path;
            $sess_file = "$session_path/sess_$id";
            return(@unlink($sess_file));
         }
         function gc($maxlifetime){
            global $session_path;
            foreach (glob("$session_path/sess_*") as $filename) {
               if (filemtime($filename) + $maxlifetime < time()) {
                  @unlink($filename);
               }
            }
            return true;
         }
         $res = session_set_save_handler("open", "close", "read", "write", "destroy", "gc");
         if($res){
            print("Successful");
         }else{
            print("A problem occurred");
         }
         session_start();
      ?>
   </body>   
</html> 

執行上述 html 檔案後,它將顯示以下訊息。

Successful
php_function_reference.htm
廣告