View Issue Details

This bug affects 1 person(s).
 10
IDProjectCategoryView StatusLast Update
12520Bug reportsStatisticspublic2018-05-25 11:30
Reportersaint42 Assigned Toc_schmitz  
PrioritynoneSeverityblock 
Status closedResolutionreopened 
Product Version2.67.x 
Fixed in Version3.0.x 
Summary12520: Crash when trying to generate a PDF with Graph statistic page / "Cannot use string offset as an array"
Description

Greetings,

When I try to generate a PDF statistic file with graphs, I get an error message:

Internal Server Error
Cannot use string offset as an array

Steps To Reproduce

Go to Browse Responses , check the following:

  • View summary of all available fields
  • Subtotal based on displayed questions
  • Show text responses inline
  • Show graphs

Output format: PDF

Then click on VIEW STATISTICS

Additional Information

I see a ton of errors when I switch to DEBUG1 or DEBUG2 in the config file.
Let me know where you want me to dump that.

Thank you !

TagsNo tags attached.
Attached Files
Bug heat10
Complete LimeSurvey version number (& build)Version 2.67.1+170626
I will donate to the project if issue is resolvedNo
BrowserSafari
Database type & versionmysql Ver 14.14 Distrib 5.6.35
Server OS (if known)Linux / CentOS
Webserver software & version (if known)Apache 2.4
PHP VersionPHP 7.1.6 (cli) (built: Jun 20 2017 14:53:32)

Users monitoring this issue

dobunzli

Activities

saint42

saint42

2017-09-14 17:32

reporter   ~44425

Any update on this please?

saint42

saint42

2017-09-14 17:44

reporter   ~44426

I just tried again. Actually, the error shows up whenever I want to export to a PDF with graphs in it.
If I select no graphs , then it works.

c_schmitz

c_schmitz

2017-10-06 16:10

administrator   ~44545

Please activate debug mode in config.php then try again to export. You should receive a more detailed error.
Save it as HTML file and add it here. The visiblity of this bug issue is private (only visible to the dev team and you) so on attaching files you don't need to check anything.

saint42

saint42

2017-10-09 23:19

reporter   ~44558

if you can't open the first file.

PHP error.html (23,201 bytes)   
<!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 error</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 error</h1>

	<p class="message">
		Methods with the same name as their class will not be constructors in a future version of PHP; pChart has a deprecated constructor	</p>

	<div class="source">
		<p class="file">/home/aapp/www_survey/application/third_party/pchart/pchart/pChart.class(118)</p>
		<div class="code"><pre><span class="ln">106</span>  define(&quot;TARGET_BACKGROUND&quot;,2);
<span class="ln">107</span>  define(&quot;ALIGN_TOP_LEFT&quot;,1);
<span class="ln">108</span>  define(&quot;ALIGN_TOP_CENTER&quot;,2);
<span class="ln">109</span>  define(&quot;ALIGN_TOP_RIGHT&quot;,3);
<span class="ln">110</span>  define(&quot;ALIGN_LEFT&quot;,4);
<span class="ln">111</span>  define(&quot;ALIGN_CENTER&quot;,5);
<span class="ln">112</span>  define(&quot;ALIGN_RIGHT&quot;,6);
<span class="ln">113</span>  define(&quot;ALIGN_BOTTOM_LEFT&quot;,7);
<span class="ln">114</span>  define(&quot;ALIGN_BOTTOM_CENTER&quot;,8);
<span class="ln">115</span>  define(&quot;ALIGN_BOTTOM_RIGHT&quot;,9);
<span class="ln">116</span> 
<span class="ln">117</span>  /* pChart class definition */
<span class="error"><span class="ln error-ln">118</span>  class pChart
</span><span class="ln">119</span>   {
<span class="ln">120</span>    /* Palettes definition */
<span class="ln">121</span>    var $Palette = array(&quot;0&quot;=&gt;array(&quot;R&quot;=&gt;188,&quot;G&quot;=&gt;224,&quot;B&quot;=&gt;46),
<span class="ln">122</span>                         &quot;1&quot;=&gt;array(&quot;R&quot;=&gt;224,&quot;G&quot;=&gt;100,&quot;B&quot;=&gt;46),
<span class="ln">123</span>                         &quot;2&quot;=&gt;array(&quot;R&quot;=&gt;224,&quot;G&quot;=&gt;214,&quot;B&quot;=&gt;46),
<span class="ln">124</span>                         &quot;3&quot;=&gt;array(&quot;R&quot;=&gt;46,&quot;G&quot;=&gt;151,&quot;B&quot;=&gt;224),
<span class="ln">125</span>                         &quot;4&quot;=&gt;array(&quot;R&quot;=&gt;176,&quot;G&quot;=&gt;46,&quot;B&quot;=&gt;224),
<span class="ln">126</span>                         &quot;5&quot;=&gt;array(&quot;R&quot;=&gt;224,&quot;G&quot;=&gt;46,&quot;B&quot;=&gt;117),
<span class="ln">127</span>                         &quot;6&quot;=&gt;array(&quot;R&quot;=&gt;92,&quot;G&quot;=&gt;224,&quot;B&quot;=&gt;46),
<span class="ln">128</span>                         &quot;7&quot;=&gt;array(&quot;R&quot;=&gt;224,&quot;G&quot;=&gt;176,&quot;B&quot;=&gt;46));
<span class="ln">129</span> 
<span class="ln">130</span>    /* Some static vars used in the class */
</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;/home/aapp/www_survey/application/helpers/admin/statistics_helper.php(2392): <strong>require_once</strong>()				</div>

				<div class="code"><pre><span class="ln">2387</span>         $astatdata          = array();
<span class="ln">2388</span> 
<span class="ln">2389</span>         if ($usegraph==1 &amp;&amp; $outputType != &#039;html&#039;)
<span class="ln">2390</span>         {
<span class="ln">2391</span>             //for creating graphs we need some more scripts which are included here
<span class="error"><span class="ln error-ln">2392</span>             require_once(APPPATH.&#039;/third_party/pchart/pchart/pChart.class&#039;);
</span><span class="ln">2393</span>             require_once(APPPATH.&#039;/third_party/pchart/pchart/pData.class&#039;);
<span class="ln">2394</span>             require_once(APPPATH.&#039;/third_party/pchart/pchart/pCache.class&#039;);
<span class="ln">2395</span>             $MyCache = new pCache($tempdir.&#039;/&#039;);
<span class="ln">2396</span>         }
<span class="ln">2397</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;/home/aapp/www_survey/application/helpers/admin/statistics_helper.php(4450): <strong>statistics_helper</strong>-><strong>displayResults</strong>(array(&quot;alist&quot; =&gt; array(array(&quot;Y&quot;, &quot;Yes&quot;), array(&quot;N&quot;, &quot;No&quot;), array(&quot;&quot;, &quot;No answer&quot;, false, &quot;is_no_answer&quot;)), &quot;qtitle&quot; =&gt; &quot;A0000&quot;, &quot;qquestion&quot; =&gt; &quot;Do you know the AAPP (Alcatel-Lucent Enterprise Application Part...&quot;, &quot;qtype&quot; =&gt; &quot;Y&quot;, ...), &quot;67&quot;, &quot;911434X5X382&quot;, &quot;pdf&quot;, ...)				</div>

				<div class="code"><pre><span class="ln">4445</span>                 $outputs=$this-&gt;buildOutputList($rt, $language, $surveyid, $outputType, $sql, $sLanguageCode);
<span class="ln">4446</span>                 $sOutputHTML .= $outputs[&#039;statisticsoutput&#039;];
<span class="ln">4447</span>                 //2. Collect and Display results #######################################################################
<span class="ln">4448</span>                 if (isset($outputs[&#039;alist&#039;]) &amp;&amp; $outputs[&#039;alist&#039;]) //Make sure there really is an answerlist, and if so:
<span class="ln">4449</span>                 {
<span class="error"><span class="ln error-ln">4450</span>                     $display=$this-&gt;displayResults($outputs, $results, $rt, $outputType, $surveyid, $sql, $usegraph, $browse, $sLanguageCode);
</span><span class="ln">4451</span>                     $sOutputHTML .= $display[&#039;statisticsoutput&#039;];
<span class="ln">4452</span>                     $aStatisticsData = array_merge($aStatisticsData, $display[&#039;astatdata&#039;]);
<span class="ln">4453</span>                 }    //end if -&gt; collect and display results
<span class="ln">4454</span> 
<span class="ln">4455</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;/home/aapp/www_survey/application/controllers/admin/statistics.php(483): <strong>statistics_helper</strong>-><strong>generate_statistics</strong>(&quot;911434&quot;, array(&quot;datestampE&quot;, &quot;datestampG&quot;, &quot;datestampL&quot;, &quot;idG&quot;, ...), array(&quot;datestampE&quot;, &quot;datestampG&quot;, &quot;datestampL&quot;, &quot;idG&quot;, ...), 1, ...)				</div>

				<div class="code"><pre><span class="ln">478</span>             switch($outputType){
<span class="ln">479</span>                 case &#039;html&#039;:
<span class="ln">480</span>                     $statisticsoutput .=  $helper-&gt;generate_html_chartjs_statistics($surveyid,$summary,$summary,$usegraph,$outputType,&#039;DD&#039;,$statlang);
<span class="ln">481</span>                     break;
<span class="ln">482</span>                 case &#039;pdf&#039;:
<span class="error"><span class="ln error-ln">483</span>                     $helper-&gt;generate_statistics($surveyid,$summary,$summary,$usegraph,$outputType,&#039;I&#039;,$statlang);
</span><span class="ln">484</span>                     exit;
<span class="ln">485</span>                     break;
<span class="ln">486</span>                 case &#039;xls&#039;:
<span class="ln">487</span>                     $helper-&gt;generate_statistics($surveyid,$summary,$summary,$usegraph,$outputType,&#039;DD&#039;,$statlang);
<span class="ln">488</span>                     exit;
</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>statistics</strong>-><strong>run</strong>(&quot;911434&quot;, null)				</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;/home/aapp/www_survey/framework/web/actions/CAction.php(109): <strong>ReflectionMethod</strong>-><strong>invokeArgs</strong>(statistics, array(&quot;911434&quot;, null))				</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;/home/aapp/www_survey/application/core/Survey_Common_Action.php(86): <strong>CAction</strong>-><strong>runWithParamsInternal</strong>(statistics, ReflectionMethod, array(&quot;surveyid&quot; =&gt; &quot;911434&quot;, &quot;sa&quot; =&gt; &quot;index&quot;, &quot;iSurveyId&quot; =&gt; &quot;911434&quot;, &quot;iSurveyID&quot; =&gt; &quot;911434&quot;, ...))				</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;/home/aapp/www_survey/framework/web/CController.php(308): <strong>Survey_Common_Action</strong>-><strong>runWithParams</strong>(array(&quot;surveyid&quot; =&gt; &quot;911434&quot;, &quot;sa&quot; =&gt; &quot;index&quot;, &quot;iSurveyId&quot; =&gt; &quot;911434&quot;, &quot;iSurveyID&quot; =&gt; &quot;911434&quot;, ...))				</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;/home/aapp/www_survey/framework/web/CController.php(286): <strong>CController</strong>-><strong>runAction</strong>(statistics)				</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;/home/aapp/www_survey/framework/web/CController.php(265): <strong>CController</strong>-><strong>runActionWithFilters</strong>(statistics, 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;/home/aapp/www_survey/application/controllers/AdminController.php(177): <strong>CController</strong>-><strong>run</strong>(&quot;statistics&quot;)				</div>

				<div class="code"><pre><span class="ln">172</span>                     $this-&gt;redirect(array(&#039;/admin/authentication/sa/login&#039;));
<span class="ln">173</span>                 }
<span class="ln">174</span> 
<span class="ln">175</span>             }
<span class="ln">176</span> 
<span class="error"><span class="ln error-ln">177</span>             return parent::run($action);
</span><span class="ln">178</span>     }
<span class="ln">179</span> 
<span class="ln">180</span>     /**
<span class="ln">181</span>     * Routes all the actions to their respective places
<span class="ln">182</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;/home/aapp/www_survey/framework/web/CWebApplication.php(282): <strong>AdminController</strong>-><strong>run</strong>(&quot;statistics&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;/home/aapp/www_survey/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-><strong>runController</strong>(&quot;admin/statistics/sa/index&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;/home/aapp/www_survey/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;/home/aapp/www_survey/index.php(214): <strong>CApplication</strong>-><strong>run</strong>()				</div>

				<div class="code"><pre><span class="ln">209</span>         die (sprintf(&#039;%s should be writable by the webserver (766 or 776).&#039;, $sDefaultRuntimePath));
<span class="ln">210</span>     }
<span class="ln">211</span> }
<span class="ln">212</span> 
<span class="ln">213</span> Yii::$enableIncludePath = false;
<span class="error"><span class="ln error-ln">214</span> Yii::createApplication(&#039;LSYii_Application&#039;, $config)-&gt;run();
</span><span class="ln">215</span> 
<span class="ln">216</span> /* End of file index.php */
<span class="ln">217</span> /* Location: ./index.php */
</pre></div>			</td>
		</tr>
				</table>
	</div>

	<div class="version">
		2017-10-09 21:17:09 Apache <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.18	</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>
PHP error.html (23,201 bytes)   
c_schmitz

c_schmitz

2018-02-15 12:32

administrator   ~46510

Can you still reproduce that using the latest version? (2.73.x or 3.3.x) ?
If you please attach the survey as .lsa file. I switched the bug to private so only you and our devs are able to see it.

c_schmitz

c_schmitz

2018-02-21 08:44

administrator   ~46626

Last edited: 2018-02-21 09:07

What was the latest version you tested with?
Still cannot reproduce in 2.73. Attached my output which looks just fine to me.

c_schmitz

c_schmitz

2018-02-21 09:16

administrator   ~46627

Come on. I asked you to update first before attaching a file. This is a bug in an old version and resolved a couple versions later.

saint42

saint42

2018-02-21 15:50

reporter   ~46690

I'm sorry, but there was 4 months between our last conversation, and I did not upgrade LimeSurvey in between.
I tried on 3.4 today, and the issue is not reproducible.

nomoto

nomoto

2018-04-11 02:07

reporter   ~47394

It seems that there is still a problem in 3.6.2.
Please change pChart.class.php as follows.

2625 / Calculate all polygons /
2626 $Angle = 0; $CDev = 5;
2627 // dip nomoto $TopPlots = ""; $BotPlots = "";
2628 $TopPlots = array(); $BotPlots = array();
2629 //$aTopPlots = ""; $aBotPlots = "";
2630 $aTopPlots = array(); $aBotPlots = array();

2712 //dip nomoto 20180411
2713 //$Plots = ""; $Plot = 0;
2714 $Plots = array(); $Plot = 0;

Please update.
Thank you.

dobunzli

dobunzli

2018-05-13 11:50

reporter   ~47586

Hello,

I have exact same problem using latest LS 3.7.2 with php 7.1 (which is probably the cause of the problem).
See same problem solved here: https://github.com/matomo-org/matomo/issues/11116

@nomoto: thanks for the suggestions but I wasn't able to introduce your modifications without obtaining errors. Can you post a working version ?

c_schmitz

c_schmitz

2018-05-22 15:27

administrator   ~47703

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

c_schmitz

c_schmitz

2018-05-22 15:33

administrator   ~47704

Should be fixed now. If the issue persists feel free to reopen it.

c_schmitz

c_schmitz

2018-05-25 11:30

administrator   ~47826

Version 3.8.1+180524 released

Related Changesets

LimeSurvey: master a9239063

2018-05-22 15:27:19

c_schmitz

Details Diff
Fixed issue 12520: Crash when trying to generate a PDF with Graphs from statistic page on PHP 7.1 or later Affected Issues
12520
mod - application/third_party/pchart/pChart.class.php Diff File

Issue History

Date Modified Username Field Change
2017-07-06 15:37 saint42 New Issue
2017-09-14 17:32 saint42 Note Added: 44425
2017-09-14 17:44 saint42 File Added: Screen Shot 2017-09-14 at 11.44.10 AM.png
2017-09-14 17:44 saint42 File Added: Screen Shot 2017-09-14 at 11.44.03 AM.png
2017-09-14 17:44 saint42 Note Added: 44426
2017-10-06 16:10 c_schmitz Assigned To => c_schmitz
2017-10-06 16:10 c_schmitz Status new => feedback
2017-10-06 16:10 c_schmitz Note Added: 44545
2017-10-09 23:19 saint42 File Added: PHP error.webarchive
2017-10-09 23:19 saint42 Status feedback => assigned
2017-10-09 23:19 saint42 File Added: PHP error.html
2017-10-09 23:19 saint42 Note Added: 44558
2018-02-15 12:32 c_schmitz Status assigned => feedback
2018-02-15 12:32 c_schmitz Note Added: 46510
2018-02-16 18:45 saint42 Status feedback => assigned
2018-02-16 18:46 saint42 File Added: survey_archive_911434.lsa
2018-02-21 08:44 c_schmitz Note Added: 46626
2018-02-21 09:02 c_schmitz File Deleted: PHP error.webarchive
2018-02-21 09:06 c_schmitz File Added: Survey_911434_AAPP_Feedback_internal-1.pdf
2018-02-21 09:07 c_schmitz Note Edited: 46626
2018-02-21 09:14 c_schmitz File Deleted: Survey_911434_AAPP_Feedback_internal-1.pdf
2018-02-21 09:14 c_schmitz File Deleted: survey_archive_911434.lsa
2018-02-21 09:16 c_schmitz Status assigned => closed
2018-02-21 09:16 c_schmitz Resolution open => fixed
2018-02-21 09:16 c_schmitz Fixed in Version => 3.0.x
2018-02-21 09:16 c_schmitz Note Added: 46627
2018-02-21 09:16 c_schmitz View Status private => public
2018-02-21 15:50 saint42 Status closed => feedback
2018-02-21 15:50 saint42 Resolution fixed => reopened
2018-02-21 15:50 saint42 Note Added: 46690
2018-04-11 02:07 nomoto Note Added: 47394
2018-05-13 11:50 dobunzli Note Added: 47586
2018-05-19 18:50 dobunzli Issue Monitored: dobunzli
2018-05-22 15:27 c_schmitz Changeset attached => LimeSurvey master a9239063
2018-05-22 15:27 c_schmitz Note Added: 47703
2018-05-22 15:33 c_schmitz Status feedback => resolved
2018-05-22 15:33 c_schmitz Note Added: 47704
2018-05-25 11:30 c_schmitz Note Added: 47826
2018-05-25 11:30 c_schmitz Status resolved => closed
2021-08-03 02:06 guest Bug heat 8 => 10