Added LoggingInterface for switching between loggers. Refactored Login and Cookie classes.
This commit is contained in:
@ -11,21 +11,26 @@ For license information see doc/license.txt --- Unicode Reminder メモ
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
namespace OpenCachingDE\Util;
|
||||
namespace OpencachingDE\Util;
|
||||
|
||||
use OpencachingDE\Logging\LoggingInterface;
|
||||
|
||||
class Cookie
|
||||
{
|
||||
private $logger;
|
||||
|
||||
private $changed = false;
|
||||
private $values = array();
|
||||
private $session_initalized = false;
|
||||
|
||||
public function __construct()
|
||||
public function __construct(LoggingInterface $logger)
|
||||
{
|
||||
$this->logger = $logger;
|
||||
global $opt;
|
||||
|
||||
if ($opt['session']['mode'] == SAVE_SESSION) {
|
||||
if (isset($_REQUEST['SESSION']) && $_REQUEST['SESSION'] != '') {
|
||||
$this->init_session();
|
||||
$this->initSession();
|
||||
}
|
||||
} else {
|
||||
if (isset($_COOKIE[$opt['session']['cookiename'] . 'data'])) {
|
||||
@ -44,37 +49,36 @@ class Cookie
|
||||
}
|
||||
}
|
||||
|
||||
function init_session()
|
||||
private function initSession()
|
||||
{
|
||||
if ($this->session_initalized == true) {
|
||||
return;
|
||||
}
|
||||
|
||||
global $opt;
|
||||
|
||||
if ($this->session_initalized != true) {
|
||||
session_name('SESSION');
|
||||
session_set_cookie_params($opt['session']['expire']['cookie'], $opt['session']['path'], $opt['session']['domain']);
|
||||
session_start();
|
||||
session_name('SESSION');
|
||||
session_set_cookie_params($opt['session']['expire']['cookie'], $opt['session']['path'], $opt['session']['domain']);
|
||||
session_start();
|
||||
|
||||
if ($opt['session']['check_referer']) {
|
||||
if (isset($_SERVER['REFERER'])) {
|
||||
if (strtolower(substr($_SERVER['REFERER'], 0, strlen($opt['page']['absolute_url']))) != strtolower($opt['page']['absolute_url'])) {
|
||||
$this->createNewSession();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((isset($_GET['SESSION']) || isset($_POST['SESSION'])) && count($_SESSION) > 0) {
|
||||
// comapre and set timestamp
|
||||
if (isset($_SESSION['lastcall'])) {
|
||||
if (abs(time() - $_SESSION['lastcall']) > $opt['session']['expire']['url']) {
|
||||
$this->createNewSession();
|
||||
}
|
||||
}
|
||||
$_SESSION['lastcall'] = time();
|
||||
}
|
||||
$this->session_initalized = true;
|
||||
if ($opt['session']['check_referer']
|
||||
&& isset($_SERVER['REFERER'])
|
||||
&& strtolower(substr($_SERVER['REFERER'], 0, strlen($opt['page']['absolute_url']))) != strtolower($opt['page']['absolute_url'])
|
||||
) {
|
||||
$this->createNewSession();
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['SESSION']) && count($_SESSION) > 0) {
|
||||
// comapre and set timestamp
|
||||
if (isset($_SESSION['lastcall']) && (abs(time() - $_SESSION['lastcall']) > $opt['session']['expire']['url'])) {
|
||||
$this->createNewSession();
|
||||
}
|
||||
$_SESSION['lastcall'] = time();
|
||||
}
|
||||
$this->session_initalized = true;
|
||||
}
|
||||
|
||||
function createNewSession()
|
||||
private function createNewSession()
|
||||
{
|
||||
session_regenerate_id();
|
||||
$locale = isset($_SESSION['locale']) ? $_SESSION['locale'] : '';
|
||||
@ -98,7 +102,7 @@ class Cookie
|
||||
$this->changed = true;
|
||||
}
|
||||
} else {
|
||||
$this->init_session();
|
||||
$this->initSession();
|
||||
$_SESSION[$name] = $value;
|
||||
$this->changed = true;
|
||||
}
|
||||
@ -160,7 +164,7 @@ class Cookie
|
||||
}
|
||||
}
|
||||
|
||||
function header()
|
||||
public function header()
|
||||
{
|
||||
global $opt;
|
||||
|
||||
@ -169,6 +173,7 @@ class Cookie
|
||||
} else {
|
||||
if ($this->changed == true) {
|
||||
if (count($this->values) == 0) {
|
||||
$this->logger->notice('Cookie data empty.');
|
||||
setcookie($opt['session']['cookiename'] . 'data', false, time() + 31536000, $opt['session']['path'], $opt['session']['domain'], 0);
|
||||
} else {
|
||||
setcookie($opt['session']['cookiename'] . 'data', base64_encode(serialize($this->values)), time() + 31536000, $opt['session']['path'], $opt['session']['domain'], 0);
|
||||
@ -188,7 +193,7 @@ class Cookie
|
||||
exit;
|
||||
}
|
||||
|
||||
function close()
|
||||
public function close()
|
||||
{
|
||||
global $opt;
|
||||
if ($opt['session']['mode'] == SAVE_SESSION) {
|
||||
|
Reference in New Issue
Block a user