update Piwik to version 2.16 (fixes #91)
This commit is contained in:
parent
296343bf3b
commit
d885a4baa9
5833 changed files with 418860 additions and 226988 deletions
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
|
|
@ -9,6 +9,8 @@
|
|||
namespace Piwik;
|
||||
|
||||
use Exception;
|
||||
use Piwik\Container\StaticContainer;
|
||||
use Piwik\Exception\MissingFilePermissionException;
|
||||
use Piwik\Session\SaveHandler\DbTable;
|
||||
use Zend_Session;
|
||||
|
||||
|
|
@ -17,6 +19,8 @@ use Zend_Session;
|
|||
*/
|
||||
class Session extends Zend_Session
|
||||
{
|
||||
const SESSION_NAME = 'PIWIK_SESSID';
|
||||
|
||||
protected static $sessionStarted = false;
|
||||
|
||||
/**
|
||||
|
|
@ -36,6 +40,7 @@ class Session extends Zend_Session
|
|||
*
|
||||
* @param array|bool $options An array of configuration options; the auto-start (bool) setting is ignored
|
||||
* @return void
|
||||
* @throws Exception if starting a session fails
|
||||
*/
|
||||
public static function start($options = false)
|
||||
{
|
||||
|
|
@ -62,8 +67,7 @@ class Session extends Zend_Session
|
|||
@ini_set('session.cookie_httponly', '1');
|
||||
|
||||
// don't use the default: PHPSESSID
|
||||
$sessionName = defined('PIWIK_SESSION_NAME') ? PIWIK_SESSION_NAME : 'PIWIK_SESSID';
|
||||
@ini_set('session.name', $sessionName);
|
||||
@ini_set('session.name', self::SESSION_NAME);
|
||||
|
||||
// proxies may cause the referer check to fail and
|
||||
// incorrectly invalidate the session
|
||||
|
|
@ -82,7 +86,7 @@ class Session extends Zend_Session
|
|||
|
||||
@ini_set('session.save_handler', 'files');
|
||||
@ini_set('session.save_path', $sessionPath);
|
||||
} else if ($config->General['session_save_handler'] === 'dbtable'
|
||||
} elseif ($config->General['session_save_handler'] === 'dbtable'
|
||||
|| in_array($currentSaveHandler, array('user', 'mm'))
|
||||
) {
|
||||
// We consider these to be misconfigurations, in that:
|
||||
|
|
@ -109,19 +113,18 @@ class Session extends Zend_Session
|
|||
}
|
||||
|
||||
try {
|
||||
Zend_Session::start();
|
||||
parent::start();
|
||||
register_shutdown_function(array('Zend_Session', 'writeClose'), true);
|
||||
} catch (Exception $e) {
|
||||
Log::warning('Unable to start session: ' . $e->getMessage());
|
||||
Log::error('Unable to start session: ' . $e->getMessage());
|
||||
|
||||
$enableDbSessions = '';
|
||||
if (DbHelper::isInstalled()) {
|
||||
$enableDbSessions = "<br/>If you still experience issues after trying these changes,
|
||||
we recommend that you <a href='http://piwik.org/faq/how-to-install/#faq_133' target='_blank'>enable database session storage</a>.";
|
||||
we recommend that you <a href='http://piwik.org/faq/how-to-install/#faq_133' rel='noreferrer' target='_blank'>enable database session storage</a>.";
|
||||
}
|
||||
|
||||
$pathToSessions = Filechecks::getErrorMessageMissingPermissions(Filesystem::getPathToPiwikRoot() . '/tmp/sessions/');
|
||||
$pathToSessions = SettingsPiwik::rewriteTmpPathWithHostname($pathToSessions);
|
||||
$pathToSessions = Filechecks::getErrorMessageMissingPermissions(self::getSessionsDirectory());
|
||||
$message = sprintf("Error: %s %s %s\n<pre>Debug: the original error was \n%s</pre>",
|
||||
Piwik::translate('General_ExceptionUnableToStartSession'),
|
||||
$pathToSessions,
|
||||
|
|
@ -129,7 +132,10 @@ class Session extends Zend_Session
|
|||
$e->getMessage()
|
||||
);
|
||||
|
||||
Piwik_ExitWithMessage($message);
|
||||
$ex = new MissingFilePermissionException($message, $e->getCode(), $e);
|
||||
$ex->setIsHtmlMessage();
|
||||
|
||||
throw $ex;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -140,7 +146,11 @@ class Session extends Zend_Session
|
|||
*/
|
||||
public static function getSessionsDirectory()
|
||||
{
|
||||
$path = PIWIK_USER_PATH . '/tmp/sessions';
|
||||
return SettingsPiwik::rewriteTmpPathWithHostname($path);
|
||||
return StaticContainer::get('path.tmp') . '/sessions';
|
||||
}
|
||||
|
||||
public static function close()
|
||||
{
|
||||
parent::writeClose();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue