Added LoggingInterface for switching between loggers. Refactored Login and Cookie classes.

This commit is contained in:
2014-01-19 02:29:57 +01:00
parent 6a487c218d
commit b015efa99a
8 changed files with 121 additions and 89 deletions

View File

@ -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) {