mahara-contributors team mailing list archive
-
mahara-contributors team
-
Mailing list archive
-
Message #47625
[Bug 1757330] A change has been merged
Reviewed: https://reviews.mahara.org/8731
Committed: https://git.mahara.org/mahara/mahara/commit/9f1f94ff48e7bb0dae798e7332951d862308b4a2
Submitter: Cecilia Vela Gurovic (ceciliavg@xxxxxxxxxxxxxxx)
Branch: 17.10_STABLE
commit 9f1f94ff48e7bb0dae798e7332951d862308b4a2
Author: Robert Lyon <robertl@xxxxxxxxxxxxxxx>
Date: Mon Mar 26 09:49:17 2018 +1300
Bug 1757330: PHP 7.1 is not keeping the session when exporting
We do a bunch of iframe / js tricks to get the progress bar to work
and then rely on session for the file name to serve it at the end
This change just passes only the file name to the js redirect and then
rebuilds the full path on return. Because we use the user's id in full
path we can make sure only the valid logged in user can fetch the file
behatnotneeded
Change-Id: I6478df19465ad8e1075343cb40e6f5360061b56a
Signed-off-by: Robert Lyon <robertl@xxxxxxxxxxxxxxx>
(cherry picked from commit ba36e509d2958380f1957b97274391ef6b90f6c4)
--
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1757330
Title:
Export file Session Data not saved in PHP 7.1+
Status in Mahara:
Fix Committed
Status in Mahara 17.04 series:
Won't Fix
Status in Mahara 17.10 series:
Fix Committed
Status in Mahara 18.04 series:
Fix Committed
Status in Mahara 18.10 series:
Fix Committed
Bug description:
Mahara 17.10.3 (alo occurs on Mahara 17.10.0)
Operating system: Ubuntu, apache2, PHP 7.1.8 (also occurs on PHP 7.1.15 and PHP 7.1.3)
Database; MySQL
Browser: Chrome.
Exporting files in Mahara
/export/index.php
Export Either LEAP file or Standalone HTML
click Generate Export
in the iframe - the /export/download.php redirects back to the export/index.php file and nothing is downloaded - the progress iframe now shows the /export/index.php page.
Possible Cause:
Download.php (export/download.php) as this located at the bottom of the page (~ line 106)
$SESSION->set('exportfile', $exporter->get('exportdir') . $zipfile);
At the top of the page it checks to see if this session data exists - and if so - to force the download of the file.
line 17:
if ($exportfile = $SESSION->get('exportfile')) {
$SESSION->set('exportdata', '');
$SESSION->set('exportfile', '');
require_once('file.php');
serve_file($exportfile, basename($exportfile), 'application/x-zip', array('lifetime' => 0, 'forcedownload' => true));
exit;
}
In PHP 7.1.3 and higher - the $SESSION->get('exportfile') is empty
when the JS redirect calls this page (from the print_export_footer
function) and the session data set at the bottom of the page is not
present when the page is being loaded to get the file. (loading the
/export/index.php again will empty the exportfile data).
The export works as expected in PHP 7, but fails in PHP 7.1+.
Is Mahara 7.1+ ready?
To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1757330/+subscriptions
References