View Issue Details

This bug affects 1 person(s).
 8
IDProjectCategoryView StatusLast Update
16320Bug reportsImport/Exportpublic2021-03-22 15:27
Reporterlarjona Assigned Toc_schmitz  
PrioritylowSeverityminor 
Status closedResolutionfixed 
Product Version4.2.4 
Summary16320: Error exporting survey to TXT format when debug=2
Description

Hello, this is an instance running Version 4.2.4+200520.
The txt export of surveys get interrupted in or after the field surveyls_numberformat, by a php error:
PHP notice
Undefined offset: 0
/var/www/surveys/application/helpers/export_helper.php(2574)

2574 if (!array_key_exists('gid', $xmlData['groups']['rows']['row'][0])){

Instead of throwing the error to the web interface, it is inserted in the resulting txt file in html language. So the user believes the export goes well, but it didn't.
I'm attaching a .lss export and the .txt export of a survey.
Editing the config.php file to turn off debugging makes the .txt export work.

Steps To Reproduce

1.- set debug=2 in your config.php
2.- create a test survey
3.- try to export it as txt
4.- have a look at the resulting file.

TagsNo tags attached.
Attached Files
limesurvey_survey_141682.txt (38,417 bytes)   
id	related_id	class	type/scale	name	relevance	text	help	language	validation	mandatory	other	default	same_default	allowed_filetypes	alphasort	answer_width	answer_width_bycolumn	array_filter	array_filter_exclude	array_filter_style	assessment_value	category_separator	choice_input_columns	choice_title	code_filter	commented_checkbox	commented_checkbox_auto	cssclass	date_format	date_max	date_min	display_columns	display_rows	display_type	dropdown_dates	dropdown_dates_minute_step	dropdown_dates_month_style	dropdown_prefix	dropdown_prepostfix	dropdown_separators	dropdown_size	dualscale_headerA	dualscale_headerB	em_validation_q	em_validation_q_tip	em_validation_sq	em_validation_sq_tip	equals_num_value	equation	exclude_all_others	exclude_all_others_auto	hidden	hide_tip	input_boxes	input_size	label_input_columns	location_city	location_country	location_defaultcoordinates	location_mapheight	location_mapservice	location_mapwidth	location_mapzoom	location_nodefaultfromip	location_postal	location_state	max_answers	max_filesize	max_num_of_files	max_num_value	max_num_value_n	max_subquestions	maximum_chars	min_answers	min_num_of_files	min_num_value	min_num_value_n	multiflexible_checkbox	multiflexible_max	multiflexible_min	multiflexible_step	num_value_int_only	numbers_only	other_comment_mandatory	other_numbers_only	other_replace_text	page_break	parent_order	placeholder	prefix	printable_help	public_statistics	random_group	random_order	rank_title	repeat_headings	reverse	samechoiceheight	samelistheight	scale_export	show_comment	show_grand_total	show_title	show_totals	showpopups	slider_accuracy	slider_custom_handle	slider_default	slider_default_set	slider_handle	slider_layout	slider_max	slider_middlestart	slider_min	slider_orientation	slider_rating	slider_reset	slider_reversed	slider_separator	slider_showminmax	statistics_graphtype	statistics_showgraph	statistics_showmap	suffix	text_input_columns	text_input_width	time_limit	time_limit_action	time_limit_countdown_message	time_limit_disable_next	time_limit_disable_prev	time_limit_message	time_limit_message_delay	time_limit_message_style	time_limit_timer_style	time_limit_warning	time_limit_warning_2	time_limit_warning_2_display_time	time_limit_warning_2_message	time_limit_warning_2_style	time_limit_warning_display_time	time_limit_warning_message	time_limit_warning_style	use_dropdown	value_range_allows_missing
		S		sid		141682																																																																																																																																											
		S		admin		inherit																																																																																																																																											
		S		adminemail		inherit																																																																																																																																											
		S		anonymized		I																																																																																																																																											
		S		faxto																																																																																																																																													
		S		format		I																																																																																																																																											
		S		savetimings		I																																																																																																																																											
		S		template		inherit																																																																																																																																											
		S		language		en																																																																																																																																											
		S		additional_languages																																																																																																																																													
		S		datestamp		I																																																																																																																																											
		S		usecookie		I																																																																																																																																											
		S		allowregister		I																																																																																																																																											
		S		allowsave		I																																																																																																																																											
		S		autonumber_start		0																																																																																																																																											
		S		autoredirect		I																																																																																																																																											
		S		allowprev		I																																																																																																																																											
		S		printanswers		I																																																																																																																																											
		S		ipaddr		I																																																																																																																																											
		S		refurl		I																																																																																																																																											
		S		publicstatistics		I																																																																																																																																											
		S		publicgraphs		I																																																																																																																																											
		S		listpublic		I																																																																																																																																											
		S		htmlemail		I																																																																																																																																											
		S		sendconfirmation		I																																																																																																																																											
		S		tokenanswerspersistence		I																																																																																																																																											
		S		assessments		I																																																																																																																																											
		S		usecaptcha		E																																																																																																																																											
		S		usetokens		N																																																																																																																																											
		S		bounce_email		inherit																																																																																																																																											
		S		emailresponseto		inherit																																																																																																																																											
		S		emailnotificationto		inherit																																																																																																																																											
		S		tokenlength		-1																																																																																																																																											
		S		showxquestions		I																																																																																																																																											
		S		showgroupinfo		I																																																																																																																																											
		S		shownoanswer		I																																																																																																																																											
		S		showqnumcode		I																																																																																																																																											
		S		bounceprocessing		N																																																																																																																																											
		S		showwelcome		I																																																																																																																																											
		S		showprogress		I																																																																																																																																											
		S		questionindex		-1																																																																																																																																											
		S		navigationdelay		-1																																																																																																																																											
		S		nokeyboard		I																																																																																																																																											
		S		alloweditaftercompletion		I																																																																																																																																											
		S		gsid		1																																																																																																																																											
		S		showsurveypolicynotice		0																																																																																																																																											
		S		tokenencryptionoptions																																																																																																																																													
		S		ipanonymize		I																																																																																																																																											
		SL		surveyls_survey_id		141682		en																																																																																																																																									
		SL		surveyls_language		en		en																																																																																																																																									
		SL		surveyls_title		test		en																																																																																																																																									
		SL		surveyls_description				en																																																																																																																																									
		SL		surveyls_welcometext				en																																																																																																																																									
		SL		surveyls_endtext				en																																																																																																																																									
		SL		surveyls_url				en																																																																																																																																									
		SL		surveyls_urldescription				en																																																																																																																																									
		SL		surveyls_email_invite_subj		"Invitation to participate in a survey"		en																																																																																																																																									
		SL		surveyls_email_invite		"Dear {FIRSTNAME},you have been invited to participate in a survey.The survey is titled:""{SURVEYNAME}""""{SURVEYDESCRIPTION}""To participate, please click on the link below.Sincerely,{ADMINNAME} ({ADMINEMAIL})----------------------------------------------Click here to do the survey:{SURVEYURL}If you do not want to participate in this survey and don't want to receive any more invitations please click the following link:{OPTOUTURL}If you are blacklisted but want to participate in this survey and want to receive invitations please click the following link:{OPTINURL}"		en																																																																																																																																									
		SL		surveyls_email_remind_subj		"Reminder to participate in a survey"		en																																																																																																																																									
		SL		surveyls_email_remind		"Dear {FIRSTNAME},Recently we invited you to participate in a survey.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.The survey is titled:""{SURVEYNAME}""""{SURVEYDESCRIPTION}""To participate, please click on the link below.Sincerely,{ADMINNAME} ({ADMINEMAIL})----------------------------------------------Click here to do the survey:{SURVEYURL}If you do not want to participate in this survey and don't want to receive any more invitations please click the following link:{OPTOUTURL}"		en																																																																																																																																									
		SL		surveyls_email_register_subj		"Survey registration confirmation"		en																																																																																																																																									
		SL		surveyls_email_register		"Dear {FIRSTNAME},You, or someone using your email address, have registered to participate in an online survey titled {SURVEYNAME}.To complete this survey, click on the following URL:{SURVEYURL}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}."		en																																																																																																																																									
		SL		surveyls_email_confirm_subj		"Confirmation of your participation in our survey"		en																																																																																																																																									
		SL		surveyls_email_confirm		"Dear {FIRSTNAME},this email is to confirm that you have completed the survey titled {SURVEYNAME} and your response has been saved. Thank you for participating.If you have any further questions about this email, please contact {ADMINNAME} on {ADMINEMAIL}.Sincerely,{ADMINNAME}"		en																																																																																																																																									
		SL		surveyls_dateformat		9		en																																																																																																																																									
		SL		email_admin_notification_subj		"Response submission for survey {SURVEYNAME}"		en																																																																																																																																									
		SL		email_admin_notification		"Hello,A new response was submitted for your survey '{SURVEYNAME}'.Click the following link to see the individual response:{VIEWRESPONSEURL}Click the following link to edit the individual response:{EDITRESPONSEURL}View statistics by clicking here:{STATISTICSURL}"		en																																																																																																																																									
		SL		email_admin_responses_subj		"Response submission for survey {SURVEYNAME} with results"		en																																																																																																																																									
		SL		email_admin_responses		"Hello,A new response was submitted for your survey '{SURVEYNAME}'.Click the following link to see the individual response:{VIEWRESPONSEURL}Click the following link to edit the individual response:{EDITRESPONSEURL}View statistics by clicking here:{STATISTICSURL}The following answers were given by the participant:{ANSWERTABLE}"		en																																																																																																																																									
		SL		surveyls_numberformat		0		en																																																																																																																																									
<!DOCTYPE html PUBLIC
	"-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>PHP notice</title>

<style type="text/css">
/*<![CDATA[*/
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;margin:0;padding:0;}
body{line-height:1;}
ol,ul{list-style:none;}
blockquote,q{quotes:none;}
blockquote:before,blockquote:after,q:before,q:after{content:none;}
:focus{outline:0;}
ins{text-decoration:none;}
del{text-decoration:line-through;}
table{border-collapse:collapse;border-spacing:0;}

body {
	font: normal 9pt "Verdana";
	color: #000;
	background: #fff;
}

h1 {
	font: normal 18pt "Verdana";
	color: #f00;
	margin-bottom: .5em;
}

h2 {
	font: normal 14pt "Verdana";
	color: #800000;
	margin-bottom: .5em;
}

h3 {
	font: bold 11pt "Verdana";
}

pre {
	font: normal 11pt Menlo, Consolas, "Lucida Console", Monospace;
}

pre span.error {
	display: block;
	background: #fce3e3;
}

pre span.ln {
	color: #999;
	padding-right: 0.5em;
	border-right: 1px solid #ccc;
}

pre span.error-ln {
	font-weight: bold;
}

.container {
	margin: 1em 4em;
}

.version {
	color: gray;
	font-size: 8pt;
	border-top: 1px solid #aaa;
	padding-top: 1em;
	margin-bottom: 1em;
}

.message {
	color: #000;
	padding: 1em;
	font-size: 11pt;
	background: #f3f3f3;
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
	border-radius: 10px;
	margin-bottom: 1em;
	line-height: 160%;
}

.source {
	margin-bottom: 1em;
}

.code pre {
	background-color: #ffe;
	margin: 0.5em 0;
	padding: 0.5em;
	line-height: 125%;
	border: 1px solid #eee;
}

.source .file {
	margin-bottom: 1em;
	font-weight: bold;
}

.traces {
	margin: 2em 0;
}

.trace {
	margin: 0.5em 0;
	padding: 0.5em;
}

.trace.app {
	border: 1px dashed #c00;
}

.trace .number {
	text-align: right;
	width: 2em;
	padding: 0.5em;
}

.trace .content {
	padding: 0.5em;
}

.trace .plus,
.trace .minus {
	display:inline;
	vertical-align:middle;
	text-align:center;
	border:1px solid #000;
	color:#000;
	font-size:10px;
	line-height:10px;
	margin:0;
	padding:0 1px;
	width:10px;
	height:10px;
}

.trace.collapsed .minus,
.trace.expanded .plus,
.trace.collapsed pre {
	display: none;
}

.trace-file {
	cursor: pointer;
	padding: 0.2em;
}

.trace-file:hover {
	background: #f0ffff;
}
/*]]>*/
</style>
</head>

<body>
<div class="container">
	<h1>PHP notice</h1>

	<p class="message">
		Undefined offset: 0	</p>

	<div class="source">
		<p class="file">/var/www/surveys/application/helpers/export_helper.php(2574)</p>
		<div class="code"><pre><span class="ln">2562</span>             $defaultvalues[$defaultvalue[&#039;language&#039;]][$defaultvalue[&#039;sqid&#039;]] = $defaultvalue[&#039;defaultvalue&#039;];
<span class="ln">2563</span>         } else {
<span class="ln">2564</span>             $defaultvalues[$defaultvalue[&#039;language&#039;]][$defaultvalue[&#039;qid&#039;]] = $defaultvalue[&#039;defaultvalue&#039;];
<span class="ln">2565</span>         }
<span class="ln">2566</span>     }
<span class="ln">2567</span> 
<span class="ln">2568</span>     $groups = array();
<span class="ln">2569</span>     $index_languages = 0;
<span class="ln">2570</span>     foreach ($aSurveyLanguages as $key =&gt; $language) {
<span class="ln">2571</span>         // groups data
<span class="ln">2572</span>         if (array_key_exists(&#039;groups&#039;, $xmlData)){
<span class="ln">2573</span>             // Converting the XML to array has the disadvantage that if only there is one child it will not be properly nested in the array
<span class="error"><span class="ln error-ln">2574</span>             if (!array_key_exists(&#039;gid&#039;, $xmlData[&#039;groups&#039;][&#039;rows&#039;][&#039;row&#039;][0])){
</span><span class="ln">2575</span>                 $aSaveData=$xmlData[&#039;groups&#039;][&#039;rows&#039;][&#039;row&#039;];
<span class="ln">2576</span>                 unset($xmlData[&#039;groups&#039;][&#039;rows&#039;][&#039;row&#039;]);
<span class="ln">2577</span>                 $xmlData[&#039;groups&#039;][&#039;rows&#039;][&#039;row&#039;][0] = $aSaveData;
<span class="ln">2578</span>             }
<span class="ln">2579</span> 
<span class="ln">2580</span>             foreach($xmlData[&#039;groups&#039;][&#039;rows&#039;][&#039;row&#039;] as $group){
<span class="ln">2581</span>                 $groups_data[$group[&#039;gid&#039;]] = $group;
<span class="ln">2582</span>             }
<span class="ln">2583</span> 
<span class="ln">2584</span>             // Converting the XML to array has the disadvantage that if only there is one child it will not be properly nested in the array
<span class="ln">2585</span>             if (!array_key_exists(&#039;gid&#039;, $xmlData[&#039;group_l10ns&#039;][&#039;rows&#039;][&#039;row&#039;][0])){
<span class="ln">2586</span>                 $aSaveData=$xmlData[&#039;group_l10ns&#039;][&#039;rows&#039;][&#039;row&#039;];
</pre></div>	</div>

	<div class="traces">
		<h2>Stack Trace</h2>
				<table style="width:100%;">
						<tr class="trace app expanded">
			<td class="number">
				#0			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/var/www/surveys/application/controllers/admin/export.php(1344): <strong>tsvSurveyExport</strong>(&quot;141682&quot;)				</div>

				<div class="code"><pre><span class="ln">1339</span>         header(&quot;Content-Type: text/tab-separated-values charset=UTF-8&quot;);
<span class="ln">1340</span>         header(&quot;Content-Disposition: attachment; filename=$fn&quot;);
<span class="ln">1341</span>         header(&quot;Expires: Mon, 26 Jul 1997 05:00:00 GMT&quot;); // Date in the past
<span class="ln">1342</span>         header(&quot;Last-Modified: &quot; . gmdate(&quot;D, d M Y H:i:s&quot;) . &quot; GMT&quot;);
<span class="ln">1343</span>         header(&quot;Cache-Control: must-revalidate, no-store, no-cache&quot;);
<span class="error"><span class="ln error-ln">1344</span>         tsvSurveyExport($surveyid);
</span><span class="ln">1345</span>     }
<span class="ln">1346</span> 
<span class="ln">1347</span>     /**
<span class="ln">1348</span>      * @param string $content_type
<span class="ln">1349</span>      */
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#1			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/var/www/surveys/application/controllers/admin/export.php(1083): <strong>export</strong>-><strong>_exporttsv</strong>(&quot;141682&quot;)				</div>

				<div class="code"><pre><span class="ln">1078</span> 
<span class="ln">1079</span>                 echo quexml_export($iSurveyID, $quexmllang);
<span class="ln">1080</span>                 Yii::app()-&gt;end();
<span class="ln">1081</span>             }
<span class="ln">1082</span>         } elseif ($action == &#039;exportstructuretsv&#039;) {
<span class="error"><span class="ln error-ln">1083</span>             $this-&gt;_exporttsv($iSurveyID);
</span><span class="ln">1084</span>         } elseif ($action == &quot;exportarchive&quot;) {
<span class="ln">1085</span>             $this-&gt;_exportarchive($iSurveyID);
<span class="ln">1086</span>         } elseif ($action == &quot;exportprintables&quot;) {
<span class="ln">1087</span>             $this-&gt;_exportPrintableHtmls($iSurveyID);
<span class="ln">1088</span>         }
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#2			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/var/www/surveys/application/controllers/admin/export.php(42): <strong>export</strong>-><strong>_surveyexport</strong>(&quot;exportstructuretsv&quot;, &quot;141682&quot;)				</div>

				<div class="code"><pre><span class="ln">37</span>     {
<span class="ln">38</span>         $action = Yii::app()-&gt;request-&gt;getParam(&#039;action&#039;);
<span class="ln">39</span>         $iSurveyID = sanitize_int(Yii::app()-&gt;request-&gt;getParam(&#039;surveyid&#039;));
<span class="ln">40</span> 
<span class="ln">41</span>         if (Permission::model()-&gt;hasSurveyPermission($iSurveyID, &#039;surveycontent&#039;, &#039;export&#039;)) {
<span class="error"><span class="ln error-ln">42</span>             $this-&gt;_surveyexport($action, $iSurveyID);
</span><span class="ln">43</span>             return;
<span class="ln">44</span>         }
<span class="ln">45</span>     }
<span class="ln">46</span> 
<span class="ln">47</span>     /**
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#3			</td>
			<td class="content">
				<div class="trace-file">
										&nbsp;unknown(0): <strong>export</strong>-><strong>survey</strong>()				</div>

							</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#4			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/var/www/surveys/framework/web/actions/CAction.php(109): <strong>ReflectionMethod</strong>-><strong>invokeArgs</strong>(export, array())				</div>

				<div class="code"><pre><span class="ln">104</span>             elseif($param-&gt;isDefaultValueAvailable())
<span class="ln">105</span>                 $ps[]=$param-&gt;getDefaultValue();
<span class="ln">106</span>             else
<span class="ln">107</span>                 return false;
<span class="ln">108</span>         }
<span class="error"><span class="ln error-ln">109</span>         $method-&gt;invokeArgs($object,$ps);
</span><span class="ln">110</span>         return true;
<span class="ln">111</span>     }
<span class="ln">112</span> }
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#5			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/var/www/surveys/application/core/Survey_Common_Action.php(86): <strong>CAction</strong>-><strong>runWithParamsInternal</strong>(export, ReflectionMethod, array(&quot;r&quot; =&gt; &quot;admin/export/sa/survey/action/exportstructuretsv/surveyid/141682&quot;, &quot;sa&quot; =&gt; &quot;survey&quot;, &quot;action&quot; =&gt; &quot;exportstructuretsv&quot;, &quot;surveyid&quot; =&gt; 141682, ...))				</div>

				<div class="code"><pre><span class="ln">81</span>             $oMethod = new ReflectionMethod($this, $sDefault);
<span class="ln">82</span>         }
<span class="ln">83</span> 
<span class="ln">84</span>         // We&#039;re all good to go, let&#039;s execute it
<span class="ln">85</span>         // runWithParamsInternal would automatically get the parameters of the method and populate them as required with the params
<span class="error"><span class="ln error-ln">86</span>         return parent::runWithParamsInternal($this, $oMethod, $params);
</span><span class="ln">87</span>     }
<span class="ln">88</span> 
<span class="ln">89</span>     /**
<span class="ln">90</span>      * Some functions have different parameters, which are just an alias of the
<span class="ln">91</span>      * usual parameters we&#039;re getting in the url. This function just populates
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#6			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/var/www/surveys/framework/web/CController.php(308): <strong>Survey_Common_Action</strong>-><strong>runWithParams</strong>(array(&quot;r&quot; =&gt; &quot;admin/export/sa/survey/action/exportstructuretsv/surveyid/141682&quot;, &quot;sa&quot; =&gt; &quot;survey&quot;, &quot;action&quot; =&gt; &quot;exportstructuretsv&quot;, &quot;surveyid&quot; =&gt; 141682, ...))				</div>

				<div class="code"><pre><span class="ln">303</span>     {
<span class="ln">304</span>         $priorAction=$this-&gt;_action;
<span class="ln">305</span>         $this-&gt;_action=$action;
<span class="ln">306</span>         if($this-&gt;beforeAction($action))
<span class="ln">307</span>         {
<span class="error"><span class="ln error-ln">308</span>             if($action-&gt;runWithParams($this-&gt;getActionParams())===false)
</span><span class="ln">309</span>                 $this-&gt;invalidActionParams($action);
<span class="ln">310</span>             else
<span class="ln">311</span>                 $this-&gt;afterAction($action);
<span class="ln">312</span>         }
<span class="ln">313</span>         $this-&gt;_action=$priorAction;
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#7			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/var/www/surveys/framework/web/CController.php(286): <strong>CController</strong>-><strong>runAction</strong>(export)				</div>

				<div class="code"><pre><span class="ln">281</span>      * @see runAction
<span class="ln">282</span>      */
<span class="ln">283</span>     public function runActionWithFilters($action,$filters)
<span class="ln">284</span>     {
<span class="ln">285</span>         if(empty($filters))
<span class="error"><span class="ln error-ln">286</span>             $this-&gt;runAction($action);
</span><span class="ln">287</span>         else
<span class="ln">288</span>         {
<span class="ln">289</span>             $priorAction=$this-&gt;_action;
<span class="ln">290</span>             $this-&gt;_action=$action;
<span class="ln">291</span>             CFilterChain::create($this,$action,$filters)-&gt;run();
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#8			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/var/www/surveys/framework/web/CController.php(265): <strong>CController</strong>-><strong>runActionWithFilters</strong>(export, array())				</div>

				<div class="code"><pre><span class="ln">260</span>         {
<span class="ln">261</span>             if(($parent=$this-&gt;getModule())===null)
<span class="ln">262</span>                 $parent=Yii::app();
<span class="ln">263</span>             if($parent-&gt;beforeControllerAction($this,$action))
<span class="ln">264</span>             {
<span class="error"><span class="ln error-ln">265</span>                 $this-&gt;runActionWithFilters($action,$this-&gt;filters());
</span><span class="ln">266</span>                 $parent-&gt;afterControllerAction($this,$action);
<span class="ln">267</span>             }
<span class="ln">268</span>         }
<span class="ln">269</span>         else
<span class="ln">270</span>             $this-&gt;missingAction($actionID);
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#9			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/var/www/surveys/application/controllers/AdminController.php(180): <strong>CController</strong>-><strong>run</strong>(&quot;export&quot;)				</div>

				<div class="code"><pre><span class="ln">175</span>         }
<span class="ln">176</span> 
<span class="ln">177</span>         $this-&gt;runModuleController($action);
<span class="ln">178</span> 
<span class="ln">179</span> 
<span class="error"><span class="ln error-ln">180</span>         return parent::run($action);
</span><span class="ln">181</span>     }
<span class="ln">182</span> 
<span class="ln">183</span>     /**
<span class="ln">184</span>      * Starting with LS4, 3rd party developper can extends any of the LimeSurve controllers.
<span class="ln">185</span>      *
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#10			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/var/www/surveys/framework/web/CWebApplication.php(282): <strong>AdminController</strong>-><strong>run</strong>(&quot;export&quot;)				</div>

				<div class="code"><pre><span class="ln">277</span>         {
<span class="ln">278</span>             list($controller,$actionID)=$ca;
<span class="ln">279</span>             $oldController=$this-&gt;_controller;
<span class="ln">280</span>             $this-&gt;_controller=$controller;
<span class="ln">281</span>             $controller-&gt;init();
<span class="error"><span class="ln error-ln">282</span>             $controller-&gt;run($actionID);
</span><span class="ln">283</span>             $this-&gt;_controller=$oldController;
<span class="ln">284</span>         }
<span class="ln">285</span>         else
<span class="ln">286</span>             throw new CHttpException(404,Yii::t(&#039;yii&#039;,&#039;Unable to resolve the request &quot;{route}&quot;.&#039;,
<span class="ln">287</span>                 array(&#039;{route}&#039;=&gt;$route===&#039;&#039;?$this-&gt;defaultController:$route)));
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#11			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/var/www/surveys/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-><strong>runController</strong>(&quot;admin/export/sa/survey/action/exportstructuretsv/surveyid/141682&quot;)				</div>

				<div class="code"><pre><span class="ln">136</span>             foreach(array_splice($this-&gt;catchAllRequest,1) as $name=&gt;$value)
<span class="ln">137</span>                 $_GET[$name]=$value;
<span class="ln">138</span>         }
<span class="ln">139</span>         else
<span class="ln">140</span>             $route=$this-&gt;getUrlManager()-&gt;parseUrl($this-&gt;getRequest());
<span class="error"><span class="ln error-ln">141</span>         $this-&gt;runController($route);
</span><span class="ln">142</span>     }
<span class="ln">143</span> 
<span class="ln">144</span>     /**
<span class="ln">145</span>      * Registers the core application components.
<span class="ln">146</span>      * This method overrides the parent implementation by registering additional core components.
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#12			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/var/www/surveys/framework/base/CApplication.php(185): <strong>CWebApplication</strong>-><strong>processRequest</strong>()				</div>

				<div class="code"><pre><span class="ln">180</span>     public function run()
<span class="ln">181</span>     {
<span class="ln">182</span>         if($this-&gt;hasEventHandler(&#039;onBeginRequest&#039;))
<span class="ln">183</span>             $this-&gt;onBeginRequest(new CEvent($this));
<span class="ln">184</span>         register_shutdown_function(array($this,&#039;end&#039;),0,false);
<span class="error"><span class="ln error-ln">185</span>         $this-&gt;processRequest();
</span><span class="ln">186</span>         if($this-&gt;hasEventHandler(&#039;onEndRequest&#039;))
<span class="ln">187</span>             $this-&gt;onEndRequest(new CEvent($this));
<span class="ln">188</span>     }
<span class="ln">189</span> 
<span class="ln">190</span>     /**
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#13			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/var/www/surveys/index.php(182): <strong>CApplication</strong>-><strong>run</strong>()				</div>

				<div class="code"><pre><span class="ln">177</span> require_once APPPATH . &#039;core/LSYii_Application&#039; . EXT;
<span class="ln">178</span> 
<span class="ln">179</span> $config = require_once(APPPATH . &#039;config/internal&#039; . EXT);
<span class="ln">180</span> 
<span class="ln">181</span> Yii::$enableIncludePath = false;
<span class="error"><span class="ln error-ln">182</span> Yii::createApplication(&#039;LSYii_Application&#039;, $config)-&gt;run();
</span><span class="ln">183</span> 
<span class="ln">184</span> /* End of file index.php */
<span class="ln">185</span> /* Location: ./index.php */
</pre></div>			</td>
		</tr>
				</table>
	</div>

	<div class="version">
		2020-05-21 17:56:04 nginx/1.10.3 <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.22-dev	</div>
</div>

<script type="text/javascript">
/*<![CDATA[*/
var traceReg = new RegExp("(^|\\s)trace-file(\\s|$)");
var collapsedReg = new RegExp("(^|\\s)collapsed(\\s|$)");

var e = document.getElementsByTagName("div");
for(var j=0,len=e.length;j<len;j++){
	if(traceReg.test(e[j].className)){
		e[j].onclick = function(){
			var trace = this.parentNode.parentNode;
			if(collapsedReg.test(trace.className))
				trace.className = trace.className.replace("collapsed", "expanded");
			else
				trace.className = trace.className.replace("expanded", "collapsed");
		}
	}
}
/*]]>*/
</script>

</body>
</html>
limesurvey_survey_141682.txt (38,417 bytes)   
Bug heat8
Complete LimeSurvey version number (& build)4.2.4+200520
I will donate to the project if issue is resolvedNo
BrowserAny
Database type & versionpostgresql-9.6 (latest Debian 9 package)
Server OS (if known)Debian 9 stretch
Webserver software & version (if known)nginx 1.10.3 (latest Debian 9 package)
PHP Versionphp 7.0.33 (latest Debian 9 package), php7.0-fpm

Users monitoring this issue

There are no users monitoring this issue.

Activities

DenisChenu

DenisChenu

2020-05-22 17:44

developer   ~57988

If you set debug at 0 , export as tsv , import again : do you have difference ?

PHP Notice : Undefined offset: 0

cdorin

cdorin

2020-12-28 13:00

reporter   ~61212

Hey @vharris - could you please test one when time allows? And see if it exists in 4.4.0 RC1 / develop?

c_schmitz

c_schmitz

2021-03-19 22:26

administrator   ~63490

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

lime_release_bot

lime_release_bot

2021-03-22 15:27

administrator   ~63540

Fixed in Release 4.4.14+210322

Related Changesets

LimeSurvey: master e9cbd11d

2021-03-19 22:26:26

c_schmitz

Details Diff
Fixed issue 16320: Error exporting survey to TXT format when debug=2 Affected Issues
16320
mod - application/helpers/export_helper.php Diff File

Issue History

Date Modified Username Field Change
2020-05-21 18:32 larjona New Issue
2020-05-21 18:32 larjona File Added: limesurvey_survey_141682.txt
2020-05-21 18:32 larjona File Added: surveys_archive_141682.zip
2020-05-22 17:44 DenisChenu Note Added: 57988
2020-12-28 13:00 cdorin Assigned To => vharris
2020-12-28 13:00 cdorin Priority none => low
2020-12-28 13:00 cdorin Status new => feedback
2020-12-28 13:00 cdorin Note Added: 61212
2021-03-19 22:26 c_schmitz Changeset attached => LimeSurvey master e9cbd11d
2021-03-19 22:26 c_schmitz Note Added: 63490
2021-03-19 22:26 c_schmitz Assigned To vharris => c_schmitz
2021-03-19 22:26 c_schmitz Resolution open => fixed
2021-03-20 08:41 c_schmitz Status feedback => resolved
2021-03-22 15:27 lime_release_bot Note Added: 63540
2021-03-22 15:27 lime_release_bot Status resolved => closed