close the session before requiring the page contents to fix the concurrency issue that exists due to using the file-backed session.

This commit is contained in:
Isaac Connor 2015-04-20 13:06:34 -04:00
parent 620743da5e
commit 01af58018b
3 changed files with 9 additions and 0 deletions

View File

@ -1,4 +1,6 @@
<?php <?php
# We use session vars in here, so we need to restart the session because we stopped it in index.php to improve concurrency.
session_start();
if ( empty($_REQUEST['id']) && empty($_REQUEST['eids']) ) { if ( empty($_REQUEST['id']) && empty($_REQUEST['eids']) ) {
ajaxError( "No event id(s) supplied" ); ajaxError( "No event id(s) supplied" );

View File

@ -143,6 +143,10 @@ if ( ZM_OPT_USE_AUTH && ! isset($user) && $view != 'login' ) {
$view = 'login'; $view = 'login';
} }
# Only one request can open the session file at a time, so let's close the session here to improve concurrency.
# Any file/page that uses the session must re-open it.
session_write_close();
if ( isset( $_REQUEST['request'] ) ) if ( isset( $_REQUEST['request'] ) )
{ {
foreach ( getSkinIncludes( 'ajax/'.$request.'.php', true, true ) as $includeFile ) foreach ( getSkinIncludes( 'ajax/'.$request.'.php', true, true ) as $includeFile )

View File

@ -24,6 +24,9 @@ if ( !canView( 'Events' ) )
return; return;
} }
# Must re-start session because we close it now in index.php to improve concurrency
session_start();
if ( isset($_SESSION['export']) ) if ( isset($_SESSION['export']) )
{ {
if ( isset($_SESSION['export']['detail']) ) if ( isset($_SESSION['export']['detail']) )