define('MYSQLI_HOST','localhost');
define('MYSQLI_USER','root');
define('MYSQLI_PASSWORD','');
define('MYSQLI_DATABASE','cmsw');
define('SESSION_LIFE_TIME',1440);
define('SESSION_PROBABILITY',20);
define('SESSION_NAME','SID');
define('SESSION_HASH','1');
define('SESSION_HASH_BITS','5');
function real_escape_string($string) {
global $mysqli;
if(get_magic_quotes_gpc()) $string=stripslashes($string);
$string=mysqli_real_escape_string($mysqli,$string);
return $string;
}
$mysqli=mysqli_connect(MYSQLI_HOST,MYSQLI_USER,MYSQLI_PASSWORD,MYSQLI_DATABASE);
class session
{
/*
CREATE TABLE `session` (
`id` CHAR(32) BINARY CHARSET utf8 COLLATE utf8_bin NOT NULL,
`expire` INT(10) unsigned NOT NULL default 0,
`data` TEXT NOT NULL COLLATE utf8_unicode_ci,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
*/
private $table_name='';
public function __construct($table_name='session') {
$this->table_name=$table_name;
session_set_save_handler(
array(&$this,'open'),
array(&$this,'close'),
array(&$this,'read'),
array(&$this,'write'),
array(&$this,'destroy'),
array(&$this,'gc')
);
register_shutdown_function('session_write_close');
session_start();
}
public function open($path,$name) {
return TRUE;
}
public function close() {
return TRUE;
}
public function read($id) {
global $mysqli;
$sql=sprintf("SELECT `data` FROM `%s` WHERE `id`='%s';",
$this->table_name,
$id
);
if($result=$mysqli->query($sql))
if(mysqli_num_rows($result)) {
$data=mysqli_fetch_assoc($result);
return (string)$data['data'];
}
return '';
}
public function write($id,$data) {
global $mysqli;
$sql=sprintf("REPLACE INTO `%s` (`id`,`expire`,`data`) VALUES('%s',%s,'%s');",
$this->table_name,
$id,
time(),
real_escape_string($data)
);
return $mysqli->query($sql);
}
public function destroy($id) {
global $mysqli;
$sql=sprintf("DELETE FROM `%s` WHERE `id`='%s';",
$this->table_name,
$id
);
return $mysqli->query($sql);
}
public function gc($max) {
global $mysqli;
$sql=sprintf("DELETE FROM `%s` WHERE `expire`<%s;",
$this->table_name,
time()-$max
);
return $mysqli->query($sql);
}
}
function session_init() {
ini_set('session.gc_maxlifetime',SESSION_LIFE_TIME);
ini_set('session.gc_probability',SESSION_PROBABILITY);
ini_set('session.name',SESSION_NAME);
ini_set('session.hash_function',SESSION_HASH);
ini_set('session.hash_bits_per_character',SESSION_HASH_BITS);
new session();
}
session_init();
if(!isset($_SESSION['x'])) $_SESSION['x']=1;
if(!isset($_SESSION['g'])) $_SESSION['g']=1;
$_SESSION['x']+=1;
$_SESSION['g']+=2;