View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
06541 | Bug reports | Survey taking | public | 2012-09-04 00:24 | 2012-09-20 14:12 |
Reporter | LouisD | Assigned To | c_schmitz | ||
Priority | high | Severity | partial_block | ||
Status | closed | Resolution | fixed | ||
Product Version | 2.00RC9 | ||||
Fixed in Version | 2.00+ | ||||
Summary | 06541: Attempting to view multiple surveys at the same time causes survey to submit as incomplete, or questions disappear on refresh. | ||||
Description | If you have multiple surveys open at the same time in different tabs or iframes or similar when you attempt to submit the survey all answered questions will be discarded and the survey will be submitted as incomplete. If while the survey is in this state you refresh the page all of the questions will disappear. I have already found a fix for this and explain it in additional information. For a more detailed explanation I posted about this in the forums here: | ||||
Steps To Reproduce | Open more than one survey at ensure they are using the same session. Try refreshing and/or submitting the surveys. | ||||
Additional Information | The problem appears to be being caused by the cached LimeExpressionManager singleton not always being flagged as dirty in certain situations and therefor not always being reloaded with the correct current survey information. To fix this I added the following static function to the file em_manager_helper.php. ----------START PHP---------- Then starting at line 93 of SurveyRuntimeHelper.php I changed the code as follows: Before:
} After:
} else if($surveyid != LimeExpressionManager::getLEMsurveyId()) { | ||||
Tags | No tags attached. | ||||
Bug heat | 6 | ||||
Complete LimeSurvey version number (& build) | 120816 | ||||
I will donate to the project if issue is resolved | No | ||||
Browser | |||||
Database type & version | MySQL 5.0.90 | ||||
Server OS (if known) | Linux | ||||
Webserver software & version (if known) | Apache/2.2.3 (CentOS) | ||||
PHP Version | 5.3.13 | ||||
I forgot to mention that I am using the Yii branch of LimeSurvey. |
|
Hello, public survey session parameter is in array: Denis |
|
The problem step by step:
The bottom line: The data stored in $SESSION[survey$surveyid] is good data. I want to keep and use that data. The system never corrupts this data in all ways I have used LimeSurvey. The data stored in LimeExpressionManager is bad if you switch between multiple surveys before completing them. I want to repopulate the data in LimeExpressioManager. My solution I provided here works perfectly. I've been using LimeSurvey for over 2 weeks now with no issues since adding this bug fix. Perhaps there is a better solution to fix this problem. I just hope a fix for this problem makes it into an update soon. I'm tired of having to merge my bug fix with each update. If I had not found this bug and fixed it I would not be using LimeSurvey on my site right now. |
|
Thank you very much. Very good patch written with alot of insight. If you want to join the development please let me know ;). |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2012-09-04 00:24 | LouisD | New Issue | |
2012-09-04 00:29 | LouisD | Note Added: 20625 | |
2012-09-07 12:48 | DenisChenu | Note Added: 20639 | |
2012-09-09 23:44 | LouisD | Note Added: 20649 | |
2012-09-14 11:59 | c_schmitz | Assigned To | => c_schmitz |
2012-09-14 11:59 | c_schmitz | Status | new => assigned |
2012-09-14 14:17 | c_schmitz | Note Added: 20708 | |
2012-09-14 14:17 | c_schmitz | Status | assigned => resolved |
2012-09-14 14:17 | c_schmitz | Fixed in Version | => 2.00+ |
2012-09-14 14:17 | c_schmitz | Resolution | open => fixed |
2012-09-20 14:12 | c_schmitz | Status | resolved => closed |