Heim  >  Artikel  >  Backend-Entwicklung  >  使用session_set_save_handler函数重载SESSION存储方式之MYSQL_PHP教程

使用session_set_save_handler函数重载SESSION存储方式之MYSQL_PHP教程

WBOY
WBOYOriginal
2016-07-13 17:36:20989Durchsuche


   $DB_SERVER = "server"; /* database server hostname */
   $DB_NAME = "dbname"; /* database name */
   $DB_USER = "root"; /* database user */
   $DB_PASS = "*************"; /* database password */

   $DB_SELECT_DB = "";
   $SESS_LIFE = get_cfg_var("session.gc_maxlifetime");

   function sess_open($save_path, $session_name) {
   global $DB_SERVER, $DB_NAME, $DB_USER, $DB_PASS, $DB_SELECT_DB;

   if (! $DB_SELECT_DB = mysql_pconnect($DB_SERVER, $DB_USER, $DB_PASS)) {
   echo "SORRY! MYSQL ERROR : Cant connect to $DB_SERVER as $DB_USER";
   echo "MySQL Error: ", mysql_error();
   die;
   }

   if (! mysql_select_db($DB_NAME, $DB_SELECT_DB)) {
   echo "SORRY! MYSQL ERROR : Unable to select database $DB_NAME";
   die;
   }

   return true;
   }

   function sess_close() {
   return true;
   }

   function sess_read($SessionKey){
global $DB_SELECT_DB, $SESS_LIFE;
$Query = "SELECT SessionArray FROM cdb_global_sessions WHERE SessionKey = ".$SessionKey." AND SessionExpTime > " . time();
$Result = mysql_query($Query, $DB_SELECT_DB);

   if (list($SessionArray) = mysql_fetch_row($Result)) {
   return $SessionArray;
   }

   return false;
   }

   function sess_write($SessionKey, $VArray) {
   global $DB_SELECT_DB, $SESS_LIFE;

   $SessionExpTime = time() + $SESS_LIFE;
   $SessionArray = addslashes($VArray);

   $Query = "INSERT INTO cdb_global_sessions (SessionKey,SessionExpTime,SessionArray) VALUES (".$SessionKey.",".$SessionExpTime.",".$SessionArray.")";
   $Result = mysql_query($Query, $DB_SELECT_DB);

   if (!$Result){
   $Query = "UPDATE cdb_global_sessions SET SessionExpTime = ".$SessionExpTime.", SessionArray = ".$SessionArray." WHERE SessionKey = ".$SessionKey." AND SessionExpTime > " . time();
   $Result = mysql_query($Query, $DB_SELECT_DB);
   }
   return $Result;
   }

   function sess_destroy($SessionKey) {
   global $DB_SELECT_DB;

   $Query = "DELETE FROM cdb_global_sessions WHERE SessionKey = ".$SessionKey."";
   $Result = mysql_query($Query, $DB_SELECT_DB);

   return $Result;
   }

   function sess_gc($maxlifetime) {
   global $DB_SELECT_DB;

   $Query = "DELETE FROM cdb_global_sessions WHERE SessionExpTime    $Result = mysql_query($Query, $DB_SELECT_DB);

   return mysql_affected_rows($DB_SELECT_DB);
   }

   session_set_save_handler(
   "sess_open",
   "sess_close",
   "sess_read",
   "sess_write",
   "sess_destroy",
   "sess_gc");

session_start();
   ?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/508230.htmlTechArticle? $DB_SERVER = "server"; /* database server hostname */ $DB_NAME = "dbname"; /* database name */ $DB_USER = "root"; /* database user */ $DB_PASS = "*************"; /* database pass...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn