Moderátor: Moderátoři Živě.cz
CREATE TABLE `main` (
`ses_id` varchar(32) NOT NULL default '',
`ses_time` int(11) NOT NULL default '0',
`ses_start` int(11) NOT NULL default '0',
`ses_value` text NOT NULL,
`ses_time2` varchar(20) default NULL,
`ses_start2` varchar(20) default NULL,
PRIMARY KEY (`ses_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
$session = new session();
session_set_save_handler (array(&$session, '_open'),
array(&$session, '_close'),
array(&$session, '_read'),
array(&$session, '_write'),
array(&$session, '_destroy'),
array(&$session, '_gc'));
class session
{
var $ses_sql;
function db_connect() {
return true;
}
function _open($path, $name) {
return TRUE;
}
function _close() {
$this->_gc(0);
return TRUE;
}
function _read($ses_id) {
$qr = "SELECT * FROM " . $this->ses_sql->sql_table . " WHERE ses_id = '$ses_id'";
$session_res = $this->ses_sql->Query($qr);
if (!$session_res)
{
return '';
}
$session_num = @mysql_num_rows($session_res);
if ($session_num > 0) {
$session_row = mysql_fetch_assoc ($session_res);
$ses_data = $session_row["ses_value"];
return $ses_data;
} else {
return '';
}
}
function _write($ses_id, $data) {
$qr = "UPDATE " . $this->ses_sql->sql_table
. " SET ses_time='" . time()
. "', ses_value='$data', ses_time2='" . date('Ymd-His') . "' WHERE ses_id='$ses_id'";
$session_res = $this->ses_sql->Query($qr);
if (!$session_res) {
return FALSE;
}
if (mysql_affected_rows ()) {
return TRUE;
}
$qr = "INSERT INTO " . $this->ses_sql->sql_table
. " (ses_id, ses_time, ses_start, ses_value, ses_time2, ses_start2)"
. " VALUES ('$ses_id', '" . time()
. "', '" . time() . "', '$data', '" . date('Ymd-His') . "', '" . date('Ymd-His') ."')";
$session_res = $this->ses_sql->Query($qr);
if (!$session_res) {
return FALSE;
} else {
return TRUE;
}
}
function _destroy($ses_id) {
$qr = "DELETE FROM " . $this->ses_sql->sql_table
. " WHERE ses_id = '$ses_id'";
$session_res = $this->ses_sql->Query($qr);
if (!$session_res) {
return FALSE;
} else {
return TRUE;
}
}
function _gc($life) {
$ses_life = strtotime("-1 day");
$qr = "DELETE FROM " . $this->ses_sql->sql_table
. " WHERE ses_time < $ses_life";
$session_res = $this->ses_sql->Query($qr);
if (!$session_res) {
return FALSE;
} else {
return TRUE;
}
}
}
Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků