View Issue Details

This bug affects 1 person(s).
 4
IDProjectCategoryView StatusLast Update
17451Bug reportsSurvey takingpublic2021-07-16 19:12
Reporterduvemyster Assigned ToDenisChenu  
PrioritynoneSeverityminor 
Status resolvedResolutionfixed 
Product Version3.25.20 
Fixed in Version3.25.20 
Summary17451: Upload File link after session expire leads to a message unclear to users
Description"The request could not be understood by the server due to malformed syntax. Please do not repeat the request without modifications."

(Or whatever 400 server error message is set to be served.)
Steps To Reproduce1. Check session lifetime max (e.g., session.gc_maxlifetime) or set it short on a dev server.
2. Open a survey to a group with a file-upload questions as a respondent, and leave the browser tab inactive longer than the session max.
3. No click on "Upload files"
4. The error message will be displayed in the file-upload windows. (In Edge you will initially see white, but scrolling down in the window will get to the message. The attached screenshot was from a different browser.)
Additional InformationSee https://bugs.limesurvey.org/view.php?id=14957

Suggestion: Notify a user with a message when their session has expired.
TagsNo tags attached.
Bug heat4
Complete LimeSurvey version number (& build)Version 3.27.7+210713
I will donate to the project if issue is resolvedNo
BrowserAny. Reproduced on Edge 91.0.864.67
Database & DB-Versionmysqlnd 7.4.13
Server OS (if known)linux
Webserver software & version (if known)apache2
PHP Version7.4.13

Activities

duvemyster

duvemyster

2021-07-16 01:26

reporter  

image.png (74,007 bytes)   
image.png (74,007 bytes)   
limesurvey_survey_289473.lss (12,957 bytes)   
<?xml version="1.0" encoding="UTF-8"?>
<document>
 <LimeSurveyDocType>Survey</LimeSurveyDocType>
 <DBVersion>365</DBVersion>
 <languages>
  <language>en</language>
 </languages>
 <groups>
  <fields>
   <fieldname>gid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>group_name</fieldname>
   <fieldname>group_order</fieldname>
   <fieldname>description</fieldname>
   <fieldname>language</fieldname>
   <fieldname>randomization_group</fieldname>
   <fieldname>grelevance</fieldname>
  </fields>
  <rows>
   <row>
    <gid><![CDATA[166]]></gid>
    <sid><![CDATA[289473]]></sid>
    <group_name><![CDATA[File Upload]]></group_name>
    <group_order><![CDATA[0]]></group_order>
    <description/>
    <language><![CDATA[en]]></language>
    <randomization_group/>
    <grelevance/>
   </row>
  </rows>
 </groups>
 <questions>
  <fields>
   <fieldname>qid</fieldname>
   <fieldname>parent_qid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>gid</fieldname>
   <fieldname>type</fieldname>
   <fieldname>title</fieldname>
   <fieldname>question</fieldname>
   <fieldname>preg</fieldname>
   <fieldname>help</fieldname>
   <fieldname>other</fieldname>
   <fieldname>mandatory</fieldname>
   <fieldname>question_order</fieldname>
   <fieldname>language</fieldname>
   <fieldname>scale_id</fieldname>
   <fieldname>same_default</fieldname>
   <fieldname>relevance</fieldname>
   <fieldname>modulename</fieldname>
  </fields>
  <rows>
   <row>
    <qid><![CDATA[4072]]></qid>
    <parent_qid><![CDATA[0]]></parent_qid>
    <sid><![CDATA[289473]]></sid>
    <gid><![CDATA[166]]></gid>
    <type><![CDATA[|]]></type>
    <title><![CDATA[A1]]></title>
    <question/>
    <preg/>
    <help/>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <question_order><![CDATA[1]]></question_order>
    <language><![CDATA[en]]></language>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
   </row>
  </rows>
 </questions>
 <surveys>
  <fields>
   <fieldname>sid</fieldname>
   <fieldname>admin</fieldname>
   <fieldname>expires</fieldname>
   <fieldname>startdate</fieldname>
   <fieldname>adminemail</fieldname>
   <fieldname>anonymized</fieldname>
   <fieldname>faxto</fieldname>
   <fieldname>format</fieldname>
   <fieldname>savetimings</fieldname>
   <fieldname>template</fieldname>
   <fieldname>language</fieldname>
   <fieldname>additional_languages</fieldname>
   <fieldname>datestamp</fieldname>
   <fieldname>usecookie</fieldname>
   <fieldname>allowregister</fieldname>
   <fieldname>allowsave</fieldname>
   <fieldname>autonumber_start</fieldname>
   <fieldname>autoredirect</fieldname>
   <fieldname>allowprev</fieldname>
   <fieldname>printanswers</fieldname>
   <fieldname>ipaddr</fieldname>
   <fieldname>refurl</fieldname>
   <fieldname>publicstatistics</fieldname>
   <fieldname>publicgraphs</fieldname>
   <fieldname>listpublic</fieldname>
   <fieldname>htmlemail</fieldname>
   <fieldname>sendconfirmation</fieldname>
   <fieldname>tokenanswerspersistence</fieldname>
   <fieldname>assessments</fieldname>
   <fieldname>usecaptcha</fieldname>
   <fieldname>usetokens</fieldname>
   <fieldname>bounce_email</fieldname>
   <fieldname>attributedescriptions</fieldname>
   <fieldname>emailresponseto</fieldname>
   <fieldname>emailnotificationto</fieldname>
   <fieldname>tokenlength</fieldname>
   <fieldname>showxquestions</fieldname>
   <fieldname>showgroupinfo</fieldname>
   <fieldname>shownoanswer</fieldname>
   <fieldname>showqnumcode</fieldname>
   <fieldname>bouncetime</fieldname>
   <fieldname>bounceprocessing</fieldname>
   <fieldname>bounceaccounttype</fieldname>
   <fieldname>bounceaccounthost</fieldname>
   <fieldname>bounceaccountpass</fieldname>
   <fieldname>bounceaccountencryption</fieldname>
   <fieldname>bounceaccountuser</fieldname>
   <fieldname>showwelcome</fieldname>
   <fieldname>showprogress</fieldname>
   <fieldname>questionindex</fieldname>
   <fieldname>navigationdelay</fieldname>
   <fieldname>nokeyboard</fieldname>
   <fieldname>alloweditaftercompletion</fieldname>
   <fieldname>googleanalyticsstyle</fieldname>
   <fieldname>googleanalyticsapikey</fieldname>
   <fieldname>gsid</fieldname>
   <fieldname>showsurveypolicynotice</fieldname>
  </fields>
  <rows>
   <row>
    <sid><![CDATA[289473]]></sid>
    <admin><![CDATA[yada yada]]></admin>
    <adminemail><![CDATA[yada@yada.com]]></adminemail>
    <anonymized><![CDATA[N]]></anonymized>
    <faxto/>
    <format><![CDATA[G]]></format>
    <savetimings><![CDATA[N]]></savetimings>
    <template><![CDATA[YO_Redirect]]></template>
    <language><![CDATA[en]]></language>
    <additional_languages/>
    <datestamp><![CDATA[N]]></datestamp>
    <usecookie><![CDATA[N]]></usecookie>
    <allowregister><![CDATA[N]]></allowregister>
    <allowsave><![CDATA[Y]]></allowsave>
    <autonumber_start><![CDATA[0]]></autonumber_start>
    <autoredirect><![CDATA[N]]></autoredirect>
    <allowprev><![CDATA[N]]></allowprev>
    <printanswers><![CDATA[N]]></printanswers>
    <ipaddr><![CDATA[N]]></ipaddr>
    <refurl><![CDATA[N]]></refurl>
    <publicstatistics><![CDATA[N]]></publicstatistics>
    <publicgraphs><![CDATA[N]]></publicgraphs>
    <listpublic><![CDATA[N]]></listpublic>
    <htmlemail><![CDATA[Y]]></htmlemail>
    <sendconfirmation><![CDATA[Y]]></sendconfirmation>
    <tokenanswerspersistence><![CDATA[N]]></tokenanswerspersistence>
    <assessments><![CDATA[N]]></assessments>
    <usecaptcha><![CDATA[N]]></usecaptcha>
    <usetokens><![CDATA[N]]></usetokens>
    <bounce_email><![CDATA[yada@yada.com]]></bounce_email>
    <emailresponseto/>
    <emailnotificationto/>
    <tokenlength><![CDATA[15]]></tokenlength>
    <showxquestions><![CDATA[N]]></showxquestions>
    <showgroupinfo><![CDATA[B]]></showgroupinfo>
    <shownoanswer><![CDATA[N]]></shownoanswer>
    <showqnumcode><![CDATA[X]]></showqnumcode>
    <bounceprocessing><![CDATA[N]]></bounceprocessing>
    <showwelcome><![CDATA[N]]></showwelcome>
    <showprogress><![CDATA[N]]></showprogress>
    <questionindex><![CDATA[0]]></questionindex>
    <navigationdelay><![CDATA[0]]></navigationdelay>
    <nokeyboard><![CDATA[N]]></nokeyboard>
    <alloweditaftercompletion><![CDATA[N]]></alloweditaftercompletion>
    <googleanalyticsstyle/>
    <googleanalyticsapikey/>
    <gsid><![CDATA[1]]></gsid>
    <showsurveypolicynotice><![CDATA[0]]></showsurveypolicynotice>
   </row>
  </rows>
 </surveys>
 <surveys_languagesettings>
  <fields>
   <fieldname>surveyls_survey_id</fieldname>
   <fieldname>surveyls_language</fieldname>
   <fieldname>surveyls_title</fieldname>
   <fieldname>surveyls_description</fieldname>
   <fieldname>surveyls_welcometext</fieldname>
   <fieldname>surveyls_endtext</fieldname>
   <fieldname>surveyls_url</fieldname>
   <fieldname>surveyls_urldescription</fieldname>
   <fieldname>surveyls_email_invite_subj</fieldname>
   <fieldname>surveyls_email_invite</fieldname>
   <fieldname>surveyls_email_remind_subj</fieldname>
   <fieldname>surveyls_email_remind</fieldname>
   <fieldname>surveyls_email_register_subj</fieldname>
   <fieldname>surveyls_email_register</fieldname>
   <fieldname>surveyls_email_confirm_subj</fieldname>
   <fieldname>surveyls_email_confirm</fieldname>
   <fieldname>surveyls_dateformat</fieldname>
   <fieldname>surveyls_attributecaptions</fieldname>
   <fieldname>email_admin_notification_subj</fieldname>
   <fieldname>email_admin_notification</fieldname>
   <fieldname>email_admin_responses_subj</fieldname>
   <fieldname>email_admin_responses</fieldname>
   <fieldname>surveyls_numberformat</fieldname>
   <fieldname>attachments</fieldname>
   <fieldname>surveyls_policy_notice</fieldname>
   <fieldname>surveyls_policy_error</fieldname>
   <fieldname>surveyls_policy_notice_label</fieldname>
  </fields>
  <rows>
   <row>
    <surveyls_survey_id><![CDATA[289473]]></surveyls_survey_id>
    <surveyls_language><![CDATA[en]]></surveyls_language>
    <surveyls_title><![CDATA[File Upload]]></surveyls_title>
    <surveyls_description/>
    <surveyls_welcometext/>
    <surveyls_endtext/>
    <surveyls_url/>
    <surveyls_urldescription/>
    <surveyls_email_invite_subj><![CDATA[Invitation to participate in a survey]]></surveyls_email_invite_subj>
    <surveyls_email_invite><![CDATA[Dear {FIRSTNAME},<br />
<br />
you have been invited to participate in a survey.<br />
<br />
The survey is titled:<br />
"{SURVEYNAME}"<br />
<br />
"{SURVEYDESCRIPTION}"<br />
<br />
To participate, please click on the link below.<br />
<br />
Sincerely,<br />
<br />
{ADMINNAME} ({ADMINEMAIL})<br />
<br />
----------------------------------------------<br />
Click here to do the survey:<br />
{SURVEYURL}<br />
<br />
If you do not want to participate in this survey and don't want to receive any more invitations please click the following link:<br />
{OPTOUTURL}<br />
<br />
If you are blacklisted but want to participate in this survey and want to receive invitations please click the following link:<br />
{OPTINURL}]]></surveyls_email_invite>
    <surveyls_email_remind_subj><![CDATA[Reminder to participate in a survey]]></surveyls_email_remind_subj>
    <surveyls_email_remind><![CDATA[Dear {FIRSTNAME},<br />
<br />
Recently we invited you to participate in a survey.<br />
<br />
We note that you have not yet completed the survey, and wish to remind you that the survey is still available should you wish to take part.<br />
<br />
The survey is titled:<br />
"{SURVEYNAME}"<br />
<br />
"{SURVEYDESCRIPTION}"<br />
<br />
To participate, please click on the link below.<br />
<br />
Sincerely,<br />
<br />
{ADMINNAME} ({ADMINEMAIL})<br />
<br />
----------------------------------------------<br />
Click here to do the survey:<br />
{SURVEYURL}<br />
<br />
If you do not want to participate in this survey and don't want to receive any more invitations please click the following link:<br />
{OPTOUTURL}]]></surveyls_email_remind>
    <surveyls_email_register_subj><![CDATA[Survey registration confirmation]]></surveyls_email_register_subj>
    <surveyls_email_register><![CDATA[Dear {FIRSTNAME},<br />
<br />
You, or someone using your email address, have registered to participate in an online survey titled {SURVEYNAME}.<br />
<br />
To complete this survey, click on the following URL:<br />
<br />
{SURVEYURL}<br />
<br />
If you have any questions about this survey, or if you did not register to participate and believe this email is in error, please contact {ADMINNAME} at {ADMINEMAIL}.]]></surveyls_email_register>
    <surveyls_email_confirm_subj><![CDATA[Confirmation of your participation in our survey]]></surveyls_email_confirm_subj>
    <surveyls_email_confirm><![CDATA[Dear {FIRSTNAME},<br />
<br />
this email is to confirm that you have completed the survey titled {SURVEYNAME} and your response has been saved. Thank you for participating.<br />
<br />
If you have any further questions about this email, please contact {ADMINNAME} on {ADMINEMAIL}.<br />
<br />
Sincerely,<br />
<br />
{ADMINNAME}]]></surveyls_email_confirm>
    <surveyls_dateformat><![CDATA[1]]></surveyls_dateformat>
    <email_admin_notification_subj><![CDATA[Response submission for survey {SURVEYNAME}]]></email_admin_notification_subj>
    <email_admin_notification><![CDATA[Hello,<br />
<br />
A new response was submitted for your survey '{SURVEYNAME}'.<br />
<br />
Click the following link to see the individual response:<br />
{VIEWRESPONSEURL}<br />
<br />
Click the following link to edit the individual response:<br />
{EDITRESPONSEURL}<br />
<br />
View statistics by clicking here:<br />
{STATISTICSURL}]]></email_admin_notification>
    <email_admin_responses_subj><![CDATA[Response submission for survey {SURVEYNAME} with results]]></email_admin_responses_subj>
    <email_admin_responses><![CDATA[Hello,<br />
<br />
A new response was submitted for your survey '{SURVEYNAME}'.<br />
<br />
Click the following link to see the individual response:<br />
{VIEWRESPONSEURL}<br />
<br />
Click the following link to edit the individual response:<br />
{EDITRESPONSEURL}<br />
<br />
View statistics by clicking here:<br />
{STATISTICSURL}<br />
<br />
<br />
The following answers were given by the participant:<br />
{ANSWERTABLE}]]></email_admin_responses>
    <surveyls_numberformat><![CDATA[0]]></surveyls_numberformat>
   </row>
  </rows>
 </surveys_languagesettings>
 <themes>
  <theme>
   <sid>289473</sid>
   <template_name>YO_Redirect</template_name>
   <config>
    <options>inherit</options>
   </config>
  </theme>
 </themes>
 <themes_inherited>
  <theme>
   <sid>289473</sid>
   <template_name>YO_Redirect</template_name>
   <config>
    <options>
     <ajaxmode>off</ajaxmode>
     <brandlogo>off</brandlogo>
     <brandlogofile>./files/logo.png</brandlogofile>
     <container>on</container>
     <showpopups>1</showpopups>
    </options>
   </config>
  </theme>
 </themes_inherited>
</document>
limesurvey_survey_289473.lss (12,957 bytes)   
DenisChenu

DenisChenu

2021-07-16 08:54

developer   ~65464

Adding a 401 if $surveyid is null (with a clean "session as exspired" for message) ?
https://github.com/LimeSurvey/LimeSurvey/blob/db67654da6e9ad311ff863273711301dfb96fd64/application/controllers/UploaderController.php#L22

Another code ?
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses
DenisChenu

DenisChenu

2021-07-16 17:31

developer   ~65487

Fix committed to 3.x-LTS branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&id=32321
DenisChenu

DenisChenu

2021-07-16 17:32

developer   ~65488

Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&id=32322
duvemyster

duvemyster

2021-07-16 19:04

reporter   ~65490

That sure was fast! Thank you @DenisChenu !
DenisChenu

DenisChenu

2021-07-16 19:12

developer   ~65492

Easy fix + improve user experience : happy to do it ;)

Related Changesets

LimeSurvey: 3.x-LTS f8ee40d6

2021-07-16 17:31:05

DenisChenu

Details Diff
Fixed issue 17451: Upload File link after session expire leads to a message unclear to users
Dev: 401 with session expired
Affected Issues
17451
mod - application/controllers/UploaderController.php Diff File

LimeSurvey: master 2b437fd9

2021-07-16 17:31:05

DenisChenu

Details Diff
Fixed issue 17451: Upload File link after session expire leads to a message unclear to users
Dev: 401 with session expired
Dev: Cherry-picked
Affected Issues
17451
mod - application/controllers/UploaderController.php Diff File

Issue History

Date Modified Username Field Change
2021-07-16 01:26 duvemyster New Issue
2021-07-16 01:26 duvemyster File Added: image.png
2021-07-16 01:26 duvemyster File Added: limesurvey_survey_289473.lss
2021-07-16 08:54 DenisChenu Note Added: 65464
2021-07-16 08:54 DenisChenu Bug heat 0 => 2
2021-07-16 08:54 DenisChenu Assigned To => DenisChenu
2021-07-16 08:54 DenisChenu Status new => assigned
2021-07-16 17:31 DenisChenu Changeset attached => LimeSurvey 3.x-LTS f8ee40d6
2021-07-16 17:31 DenisChenu Note Added: 65487
2021-07-16 17:31 DenisChenu Resolution open => fixed
2021-07-16 17:32 DenisChenu Changeset attached => LimeSurvey master 2b437fd9
2021-07-16 17:32 DenisChenu Note Added: 65488
2021-07-16 18:41 DenisChenu Status assigned => resolved
2021-07-16 18:41 DenisChenu Fixed in Version => 3.25.20
2021-07-16 19:04 duvemyster Note Added: 65490
2021-07-16 19:04 duvemyster Bug heat 2 => 4
2021-07-16 19:12 DenisChenu Note Added: 65492