user-define-session-inc.php檔案代碼:<?php<br />function mysession_open($save_path, $session_name)<br />{<br />@mysql_connect("localhost", "root","1981427")//選擇資料庫之前需要先串連資料庫伺服器<br />or die("資料庫伺服器串連失敗");<br />@mysql_select_db("test")//選擇資料庫mydb<br />or die("資料庫不存在或不可用");<br />return true;<br />}</p><p>function mysession_close()<br />{<br />return true;<br />}</p><p>function mysession_read($key)<br />{<br />@mysql_connect("localhost", "root","1981427")//選擇資料庫之前需要先串連資料庫伺服器<br />or die("資料庫伺服器串連失敗");<br />@mysql_select_db("test")//選擇資料庫mydb<br />or die("資料庫不存在或不可用");<br />$expiry_time = time();//擷取Session失效時間<br />//執行SQL語句獲得Session的值<br />$query = @mysql_query("select session_data from mysession "<br />."where session_key = '$key' and session_expiry > $expiry_time")<br />or die("SQL語句執行失敗");<br />if($row = mysql_fetch_array($query))<br />return $row['session_data'];<br />else<br />return false;<br />}</p><p>function mysession_write($key, $data)<br />{<br />@mysql_connect("localhost", "root","1981427")//選擇資料庫之前需要先串連資料庫伺服器<br />or die("資料庫伺服器串連失敗");<br />@mysql_select_db("test")//選擇資料庫mydb<br />or die("資料庫不存在或不可用");<br />$expiry_time = time() + 1200;//擷取Session失效時間<br />//查詢Session的索引值是否已經存在<br />$query = @mysql_query("select session_data from mysession "<br />."where session_key = '$key'")<br />or die("SQL語句執行失敗");<br />//如果不存在,則執行插入操作,否則執行更新操作<br />if(mysql_numrows($query) == 0)<br />{<br />//執行SQL語句插入Session的值<br />$query = @mysql_query("insert into mysession values('$key', '$data', $expiry_time)")<br />or die("SQL語句執行失敗");<br />}<br />else<br />{<br />//執行SQL語句更新Session的值<br />$query = @mysql_query("update mysession set "<br />."session_data = '$data', session_expiry = $expiry_time "<br />."where session_key = '$key'")<br />or die("SQL語句執行失敗");<br />}<br />return $query;<br />}</p><p>function mysession_destroy($key)<br />{<br />@mysql_connect("localhost", "root","1981427")//選擇資料庫之前需要先串連資料庫伺服器<br />or die("資料庫伺服器串連失敗");<br />@mysql_select_db("test")//選擇資料庫mydb<br />or die("資料庫不存在或不可用");<br />//執行SQL語句刪除Session<br />$query = @mysql_query("delete from mysession where session_key = '$key'")<br />or die("SQL語句執行失敗");<br />return $query;<br />}</p><p>function mysession_gc($expiry_time)<br />{<br />@mysql_connect("localhost", "root","1981427")//選擇資料庫之前需要先串連資料庫伺服器<br />or die("資料庫伺服器串連失敗");<br />@mysql_select_db("test")//選擇資料庫mydb<br />or die("資料庫不存在或不可用");<br />$expiry_time = time();<br />//執行SQL語句刪除Session<br />$query = @mysql_query("delete from mysession where session_expiry < $expiry_time")<br />or die("SQL語句執行失敗");<br />return $query;<br />}</p><p>//設定使用者自訂Session儲存<br />session_set_save_handler('mysession_open',<br />'mysession_close',<br />'mysession_read',<br />'mysession_write',<br />'mysession_destroy',<br />'mysession_gc');<br />?>
<?php<br />include('user-define-session-inc.php');//包含session_set_save_handler定義的檔案</p><p>session_start();<br />$_SESSION['username'] = "zhuzhao";<br />$_SESSION['password'] = "123456";<br />?>
<?php<br />include('user-define-session-inc.php');//包含session_set_save_handler定義的檔案</p><p>session_start();<br />echo "UserName:".$_SESSION['username']."<BR>";<br />echo "PassWord:".$_SESSION['password']."<BR>";<br />?>