<?php |
|
//Набросок |
|
require_once 'cfg.php'; //Есть массив $cfg с настройками, котрые могут быть замещены настройками с базы. |
|
//$db = DB::singleton(); |
|
//Add settings// |
//$cfg += $db->query('SELECT * FROM `cfg`;')->fetchAll(); |
|
//+ SESSION// |
//! KEY `session_id` |
|
if (@$_COOKIE[$cfg['cookie_name']]) { |
|
$qt = 'SELECT * ' |
. 'FROM `users` ' |
. 'WHERE `users`.`cookie_id` = ? ' |
. 'LIMIT 1;'; |
|
$q = $db->prepare($qt); |
$q->execute(array($_COOKIE[$cfg['cookie_name']])); |
|
if ($q->rowCount()) { |
|
$user += $q->fetch(); |
|
//Regenerate//..............//TIMESTAMP (Не люблю UNIX_TIMESTAMP, хотя было бы куда проще)// |
if (date_format(date_create($user['cookie_regenerate_interval']), 'Ymd') < date('Ymd')) { |
|
$hash = md5(microtime()); |
|
$db->query('UPDATE `users` ' |
. "SET `cookie_regenerate_interval` = NOW() + INTERVAL '" |
. ((int) $cfg['cookie_regenerate_interval']['value']) . "' " |
. ((int) $cfg['cookie_regenerate_interval']['format']) // sec.||min.||etc. |
. ", `users`.`cookie_id` = '" . $hash . "' " |
. "WHERE `users`.`user_id` = '" . $user['user_id'] . "' " |
. 'LIMIT 1;'); |
|
setcookie($cfg['cookie_name'], |
$_COOKIE[$cfg['cookie_name']] = $hash, |
$cfg['cookie_expire'], |
$cfg['cookie_path'], |
$cfg['cookie_domain'], |
$cfg['cookie_secure'], |
$cfg['cookie_httpOnly']); |
} |
} |
else { |
|
setcookie($cfg['cookie_name'], |
null, |
0, |
$cfg['cookie_path'], |
$cfg['cookie_domain'], |
$cfg['cookie_secure'], |
$cfg['cookie_httpOnly']); |
|
unset($_COOKIE[$cfg['cookie_name']], $user); |
} |
} |
//- SESSION// |