diff --git a/classes/Session.php b/classes/Session.php index d102aa6..4264460 100644 --- a/classes/Session.php +++ b/classes/Session.php @@ -138,7 +138,7 @@ class Session extends Object if (is_array($session)) { - if (isset($session['handler']) && in_array($session['handler'], array('files', 'mysql'))) + if (isset($session['handler']) && in_array($session['handler'], array('files', 'memcache', 'mysql'))) { $this->handler = $session['handler']; @@ -162,6 +162,11 @@ class Session extends Object { $this->handler = 'files'; } + elseif ($session == 'memcache') + { + $this->handler = 'memcache'; + $datasource = 'memcache'; + } elseif ($session == 'mysql') { $this->handler = 'mysql'; @@ -176,6 +181,21 @@ class Session extends Object session_start(); break; + case 'memcache': + $hostname = 'localhost'; + $port = 11211; + + if ($datasource !== false && isset($datasources[$datasource])) + { + $hostname = $datasources[$datasource]['hostname']; + $port = $datasources[$datasource]['port']; + } + + ini_set('session.save_handler', 'memcache'); + ini_set('session.save_path', 'tcp://' . $hostname . ':' . $port . '?persistent=1&weight=1&timeout=1&retry_interval=15'); + session_start(); + break; + case 'mysql': if ($datasource !== false && isset($datasources[$datasource])) { diff --git a/jar.php b/jar.php index 04495ba..2f5c77a 100755 --- a/jar.php +++ b/jar.php @@ -7492,7 +7492,7 @@ class Session extends Object if (is_array($session)) { - if (isset($session['handler']) && in_array($session['handler'], array('files', 'mysql'))) + if (isset($session['handler']) && in_array($session['handler'], array('files', 'memcache', 'mysql'))) { $this->handler = $session['handler']; @@ -7516,6 +7516,11 @@ class Session extends Object { $this->handler = 'files'; } + elseif ($session == 'memcache') + { + $this->handler = 'memcache'; + $datasource = 'memcache'; + } elseif ($session == 'mysql') { $this->handler = 'mysql'; @@ -7530,6 +7535,21 @@ class Session extends Object session_start(); break; + case 'memcache': + $hostname = 'localhost'; + $port = 11211; + + if ($datasource !== false && isset($datasources[$datasource])) + { + $hostname = $datasources[$datasource]['hostname']; + $port = $datasources[$datasource]['port']; + } + + ini_set('session.save_handler', 'memcache'); + ini_set('session.save_path', 'tcp://' . $hostname . ':' . $port . '?persistent=1&weight=1&timeout=1&retry_interval=15'); + session_start(); + break; + case 'mysql': if ($datasource !== false && isset($datasources[$datasource])) {