Today I will give you a piece of code, The database stores session information, you only need to add the following code Just put it in the session file, and then import the sessiong file where session_start() is. Of course, you don’t need to write session_start() anymore
This is the structure of the database table
Okay, here’s the code
class session {
private static $_mysqli;
public static function action() {
ini_set('session.save_handler','user');
session_set_save_handler(array(__CLASS__,'open'),
array(__CLASS__,'close' ),
array(__CLASS__,'read'),
array(__CLASS__,'write'),
array(__CLASS__,'destroy'),
array(__CLASS__,'gc')) ;
@session_start();
}
public static function open($path,$name) {
self::$_mysqli = new mysqli('localhost','root' ,'','test');
return true;
}
public static function close() {
self::$_mysqli->close();
return true;
}
public static function read($sid) {
$_query = "SELECT sdata FROM session WHERE sid='{$sid}' LIMIT 1";
$ _result = self::$_mysqli->query($_query);
$_sdata = $_result->fetch_object();
return $_sdata->sdata;
}
public static function write($sid,$sdata) {
$_query = "SELECT sid FROM session WHERE sid='{$sid}' LIMIT 1";
$_result = self::$_mysqli- >query($_query);
if (!!$_sid = $_result->fetch_object()) {
$_query = "UPDATE session SET sdata='{$sdata}' WHERE sid=' {$sid}'";
self::$_mysqli->query($_query);
} else {
$_query = "INSERT INTO session (sid,sdata) VALUES ('{$ sid}','{$sdata}')";
self::$_mysqli->query($_query);
}
return true;
}
public static function destroy($sid) {
$_query = "DELETE FROM session WHERE sid='{$sid}' LIMIT 1";
self::$_mysqli->query($_query);
setCookie(ini_get('session.name'),'',time()-1);
return true;
}
public static function gc($maxlifetime) {
$_query = "DELETE FROM session WHERE NOW()-slasttime>'{$maxlifetime}'";
self::$_mysqli->query($_query);
return true;
}
}
session::action();