View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
09007 | Bug reports | LimeSurvey Website | public | 2014-04-30 16:13 | 2014-05-02 15:10 |
Reporter | zewood | Assigned To | c_schmitz | ||
Priority | high | Severity | block | ||
Status | closed | Resolution | fixed | ||
Product Version | 2.05+ | ||||
Fixed in Version | 2.05+ | ||||
Summary | 09007: There is a crash when an user wants to create a new survey | ||||
Description | Hello, /var/www/limesurvey/framework/vendors/htmlpurifier/HTMLPurifier.standalone.php(1898) 1886 Namespace.Directive => Value But, for an admin user there is no crash !!! | ||||
Tags | No tags attached. | ||||
Attached Files | PHP warning.htm (34,747 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 warning</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 warning</h1> <p class="message"> Invalid argument supplied for foreach() </p> <div class="source"> <p class="file">/var/www/limesurvey/framework/vendors/htmlpurifier/HTMLPurifier.standalone.php(1898)</p> <div class="code"><pre><span class="ln">1886</span> * Namespace.Directive => Value <span class="ln">1887</span> * @param $config_array Configuration associative array <span class="ln">1888</span> */ <span class="ln">1889</span> public function loadArray($config_array) { <span class="ln">1890</span> if ($this->isFinalized('Cannot load directives after finalization')) return; <span class="ln">1891</span> foreach ($config_array as $key => $value) { <span class="ln">1892</span> $key = str_replace('_', '.', $key); <span class="ln">1893</span> if (strpos($key, '.') !== false) { <span class="ln">1894</span> $this->set($key, $value); <span class="ln">1895</span> } else { <span class="ln">1896</span> $namespace = $key; <span class="ln">1897</span> $namespace_values = $value; <span class="error"><span class="ln error-ln">1898</span> foreach ($namespace_values as $directive => $value) { </span><span class="ln">1899</span> $this->set($namespace .'.'. $directive, $value); <span class="ln">1900</span> } <span class="ln">1901</span> } <span class="ln">1902</span> } <span class="ln">1903</span> } <span class="ln">1904</span> <span class="ln">1905</span> /** <span class="ln">1906</span> * Returns a list of array(namespace, directive) for all directives <span class="ln">1907</span> * that are allowed in a web-form context as per an allowed <span class="ln">1908</span> * namespaces/directives list. <span class="ln">1909</span> * @param $allowed List of allowed namespaces/directives <span class="ln">1910</span> */ </pre></div> </div> <div class="traces"> <h2>Stack Trace</h2> <table style="width:100%;"> <tbody><tr class="trace core collapsed"> <td class="number"> #0 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/framework/vendors/htmlpurifier/HTMLPurifier.standalone.php(1483): <strong>HTMLPurifier_Config</strong>-><strong>loadArray</strong>(array("AutoFormat.RemoveEmpty" => false, "CSS.AllowTricky" => true, "HTML.SafeObject" => true, "Output.FlashCompat" => true, ...)) </div> <div class="code"><pre><span class="ln">1478</span> $ret = HTMLPurifier_Config::createDefault(); <span class="ln">1479</span> } else { <span class="ln">1480</span> $ret = new HTMLPurifier_Config($schema); <span class="ln">1481</span> } <span class="ln">1482</span> if (is_string($config)) $ret->loadIni($config); <span class="error"><span class="ln error-ln">1483</span> elseif (is_array($config)) $ret->loadArray($config); </span><span class="ln">1484</span> return $ret; <span class="ln">1485</span> } <span class="ln">1486</span> <span class="ln">1487</span> /** <span class="ln">1488</span> * Creates a new config object that inherits from a previous one. </pre></div> </td> </tr> <tr class="trace core collapsed"> <td class="number"> #1 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/framework/vendors/htmlpurifier/HTMLPurifier.standalone.php(110): <strong>HTMLPurifier_Config</strong>::<strong>create</strong>(array("AutoFormat.RemoveEmpty" => false, "CSS.AllowTricky" => true, "HTML.SafeObject" => true, "Output.FlashCompat" => true, ...)) </div> <div class="code"><pre><span class="ln">105</span> * The parameter can also be any type that <span class="ln">106</span> * HTMLPurifier_Config::create() supports. <span class="ln">107</span> */ <span class="ln">108</span> public function __construct($config = null) { <span class="ln">109</span> <span class="error"><span class="ln error-ln">110</span> $this->config = HTMLPurifier_Config::create($config); </span><span class="ln">111</span> <span class="ln">112</span> $this->strategy = new HTMLPurifier_Strategy_Core(); <span class="ln">113</span> <span class="ln">114</span> } <span class="ln">115</span> </pre></div> </td> </tr> <tr class="trace core collapsed"> <td class="number"> #2 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/framework/web/widgets/CHtmlPurifier.php(126): <strong>HTMLPurifier</strong>-><strong>__construct</strong>(array("AutoFormat.RemoveEmpty" => false, "CSS.AllowTricky" => true, "HTML.SafeObject" => true, "Output.FlashCompat" => true, ...)) </div> <div class="code"><pre><span class="ln">121</span> * Create a new HTML Purifier instance. <span class="ln">122</span> * @return HTMLPurifier <span class="ln">123</span> */ <span class="ln">124</span> protected function createNewHtmlPurifierInstance() <span class="ln">125</span> { <span class="error"><span class="ln error-ln">126</span> $this->_purifier=new HTMLPurifier($this->getOptions()); </span><span class="ln">127</span> $this->_purifier->config->set('Cache.SerializerPath',Yii::app()->getRuntimePath()); <span class="ln">128</span> return $this->_purifier; <span class="ln">129</span> } <span class="ln">130</span> } </pre></div> </td> </tr> <tr class="trace core collapsed"> <td class="number"> #3 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/framework/web/widgets/CHtmlPurifier.php(96): <strong>CHtmlPurifier</strong>-><strong>createNewHtmlPurifierInstance</strong>() </div> <div class="code"><pre><span class="ln">091</span> * @return CHtmlPurifier <span class="ln">092</span> */ <span class="ln">093</span> public function setOptions($options) <span class="ln">094</span> { <span class="ln">095</span> $this->_options=$options; <span class="error"><span class="ln error-ln">096</span> $this->createNewHtmlPurifierInstance(); </span><span class="ln">097</span> return $this; <span class="ln">098</span> } <span class="ln">099</span> <span class="ln">100</span> /** <span class="ln">101</span> * Get the options for the HTML Purifier instance. </pre></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> /var/www/limesurvey/framework/base/CComponent.php(152): <strong>CHtmlPurifier</strong>-><strong>setOptions</strong>(array("AutoFormat.RemoveEmpty" => false, "CSS.AllowTricky" => true, "HTML.SafeObject" => true, "Output.FlashCompat" => true, ...)) </div> <div class="code"><pre><span class="ln">147</span> */ <span class="ln">148</span> public function __set($name,$value) <span class="ln">149</span> { <span class="ln">150</span> $setter='set'.$name; <span class="ln">151</span> if(method_exists($this,$setter)) <span class="error"><span class="ln error-ln">152</span> return $this->$setter($value); </span><span class="ln">153</span> elseif(strncasecmp($name,'on',2)===0 && method_exists($this,$name)) <span class="ln">154</span> { <span class="ln">155</span> // duplicating getEventHandlers() here for performance <span class="ln">156</span> $name=strtolower($name); <span class="ln">157</span> if(!isset($this->_e[$name])) </pre></div> </td> </tr> <tr class="trace app expanded"> <td class="number"> #5 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/application/core/LSYii_Validators.php(105): <strong>CComponent</strong>-><strong>__set</strong>("options", array("AutoFormat.RemoveEmpty" => false, "CSS.AllowTricky" => true, "HTML.SafeObject" => true, "Output.FlashCompat" => true, ...)) </div> <div class="code"><pre><span class="ln">100</span> * @param string $value <span class="ln">101</span> */ <span class="ln">102</span> public function xssFilter($value) <span class="ln">103</span> { <span class="ln">104</span> $filter = new CHtmlPurifier(); <span class="error"><span class="ln error-ln">105</span> $filter->options = array( </span><span class="ln">106</span> 'AutoFormat.RemoveEmpty'=>false, <span class="ln">107</span> 'CSS.AllowTricky'=>true, // Allow display:none; (and other) <span class="ln">108</span> 'HTML.SafeObject'=>true, // To allow including youtube <span class="ln">109</span> 'Output.FlashCompat'=>true, <span class="ln">110</span> 'Attr.EnableID'=>true, // Allow to set id </pre></div> </td> </tr> <tr class="trace app expanded"> <td class="number"> #6 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/application/core/LSYii_Validators.php(52): <strong>LSYii_Validators</strong>-><strong>xssFilter</strong>("Jean MOULIN") </div> <div class="code"><pre><span class="ln">47</span> <span class="ln">48</span> protected function validateAttribute($object,$attribute) <span class="ln">49</span> { <span class="ln">50</span> if($this->xssfilter) <span class="ln">51</span> { <span class="error"><span class="ln error-ln">52</span> $object->$attribute=$this->xssFilter($object->$attribute); </span><span class="ln">53</span> } <span class="ln">54</span> if($this->isUrl) <span class="ln">55</span> { <span class="ln">56</span> if ($object->$attribute== 'http://' || $object->$attribute=='https://') {$object->$attribute="";} <span class="ln">57</span> $object->$attribute=html_entity_decode($object->$attribute, ENT_QUOTES, "UTF-8"); // 140219 : Why not urlencode ? </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> /var/www/limesurvey/framework/validators/CValidator.php(213): <strong>LSYii_Validators</strong>-><strong>validateAttribute</strong>(Survey, "admin") </div> <div class="code"><pre><span class="ln">208</span> else <span class="ln">209</span> $attributes=$this->attributes; <span class="ln">210</span> foreach($attributes as $attribute) <span class="ln">211</span> { <span class="ln">212</span> if(!$this->skipOnError || !$object->hasErrors($attribute)) <span class="error"><span class="ln error-ln">213</span> $this->validateAttribute($object,$attribute); </span><span class="ln">214</span> } <span class="ln">215</span> } <span class="ln">216</span> <span class="ln">217</span> /** <span class="ln">218</span> * Returns the JavaScript needed for performing client-side validation. </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> /var/www/limesurvey/framework/base/CModel.php(159): <strong>CValidator</strong>-><strong>validate</strong>(Survey, null) </div> <div class="code"><pre><span class="ln">154</span> if($clearErrors) <span class="ln">155</span> $this->clearErrors(); <span class="ln">156</span> if($this->beforeValidate()) <span class="ln">157</span> { <span class="ln">158</span> foreach($this->getValidators() as $validator) <span class="error"><span class="ln error-ln">159</span> $validator->validate($this,$attributes); </span><span class="ln">160</span> $this->afterValidate(); <span class="ln">161</span> return !$this->hasErrors(); <span class="ln">162</span> } <span class="ln">163</span> else <span class="ln">164</span> return false; </pre></div> </td> </tr> <tr class="trace core collapsed"> <td class="number"> #9 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/framework/db/ar/CActiveRecord.php(805): <strong>CModel</strong>-><strong>validate</strong>(null) </div> <div class="code"><pre><span class="ln">800</span> * meaning all attributes that are loaded from DB will be saved. <span class="ln">801</span> * @return boolean whether the saving succeeds <span class="ln">802</span> */ <span class="ln">803</span> public function save($runValidation=true,$attributes=null) <span class="ln">804</span> { <span class="error"><span class="ln error-ln">805</span> if(!$runValidation || $this->validate($attributes)) </span><span class="ln">806</span> return $this->getIsNewRecord() ? $this->insert($attributes) : $this->update($attributes); <span class="ln">807</span> else <span class="ln">808</span> return false; <span class="ln">809</span> } <span class="ln">810</span> </pre></div> </td> </tr> <tr class="trace app expanded"> <td class="number"> #10 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/application/models/Survey.php(381): <strong>CActiveRecord</strong>-><strong>save</strong>() </div> <div class="code"><pre><span class="ln">376</span> while (!is_null($isresult)); <span class="ln">377</span> <span class="ln">378</span> $survey = new self; <span class="ln">379</span> foreach ($aData as $k => $v) <span class="ln">380</span> $survey->$k = $v; <span class="error"><span class="ln error-ln">381</span> $sResult= $survey->save(); </span><span class="ln">382</span> if ($sResult==false) return false; <span class="ln">383</span> else return $aData['sid']; <span class="ln">384</span> } <span class="ln">385</span> <span class="ln">386</span> /** </pre></div> </td> </tr> <tr class="trace app collapsed"> <td class="number"> #11 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/application/controllers/admin/surveyadmin.php(1578): <strong>Survey</strong>-><strong>insertNewSurvey</strong>(array("expires" => "", "startdate" => "", "template" => "default", "owner_id" => 58, ...)) </div> <div class="code"><pre><span class="ln">1573</span> if (!is_null($iSurveyID)) <span class="ln">1574</span> { <span class="ln">1575</span> $aInsertData['wishSID'] = $iSurveyID; <span class="ln">1576</span> } <span class="ln">1577</span> <span class="error"><span class="ln error-ln">1578</span> $iNewSurveyid = Survey::model()->insertNewSurvey($aInsertData); </span><span class="ln">1579</span> if (!$iNewSurveyid) <span class="ln">1580</span> die('Survey could not be created.'); <span class="ln">1581</span> <span class="ln">1582</span> // Prepare locale data for surveys_language_settings table <span class="ln">1583</span> $sTitle = $_POST['surveyls_title']; </pre></div> </td> </tr> <tr class="trace core collapsed"> <td class="number"> #12 </td> <td class="content"> <div class="trace-file"> unknown(0): <strong>SurveyAdmin</strong>-><strong>insert</strong>(null) </div> </td> </tr> <tr class="trace core collapsed"> <td class="number"> #13 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/framework/web/actions/CAction.php(108): <strong>ReflectionMethod</strong>-><strong>invokeArgs</strong>(SurveyAdmin, array(null)) </div> <div class="code"><pre><span class="ln">103</span> elseif($param->isDefaultValueAvailable()) <span class="ln">104</span> $ps[]=$param->getDefaultValue(); <span class="ln">105</span> else <span class="ln">106</span> return false; <span class="ln">107</span> } <span class="error"><span class="ln error-ln">108</span> $method->invokeArgs($object,$ps); </span><span class="ln">109</span> return true; <span class="ln">110</span> } <span class="ln">111</span> } </pre></div> </td> </tr> <tr class="trace app collapsed"> <td class="number"> #14 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/application/core/Survey_Common_Action.php(99): <strong>CAction</strong>-><strong>runWithParamsInternal</strong>(SurveyAdmin, ReflectionMethod, array("sa" => "insert")) </div> <div class="code"><pre><span class="ln">094</span> $oMethod = new ReflectionMethod($this, $sDefault); <span class="ln">095</span> } <span class="ln">096</span> <span class="ln">097</span> // We're all good to go, let's execute it <span class="ln">098</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">099</span> return parent::runWithParamsInternal($this, $oMethod, $params); </span><span class="ln">100</span> } <span class="ln">101</span> <span class="ln">102</span> /** <span class="ln">103</span> * Some functions have different parameters, which are just an alias of the <span class="ln">104</span> * usual parameters we're getting in the url. This function just populates </pre></div> </td> </tr> <tr class="trace core collapsed"> <td class="number"> #15 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/framework/web/CController.php(308): <strong>Survey_Common_Action</strong>-><strong>runWithParams</strong>(array("sa" => "insert")) </div> <div class="code"><pre><span class="ln">303</span> { <span class="ln">304</span> $priorAction=$this->_action; <span class="ln">305</span> $this->_action=$action; <span class="ln">306</span> if($this->beforeAction($action)) <span class="ln">307</span> { <span class="error"><span class="ln error-ln">308</span> if($action->runWithParams($this->getActionParams())===false) </span><span class="ln">309</span> $this->invalidActionParams($action); <span class="ln">310</span> else <span class="ln">311</span> $this->afterAction($action); <span class="ln">312</span> } <span class="ln">313</span> $this->_action=$priorAction; </pre></div> </td> </tr> <tr class="trace core collapsed"> <td class="number"> #16 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/framework/web/CController.php(286): <strong>CController</strong>-><strong>runAction</strong>(SurveyAdmin) </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->runAction($action); </span><span class="ln">287</span> else <span class="ln">288</span> { <span class="ln">289</span> $priorAction=$this->_action; <span class="ln">290</span> $this->_action=$action; <span class="ln">291</span> CFilterChain::create($this,$action,$filters)->run(); </pre></div> </td> </tr> <tr class="trace core collapsed"> <td class="number"> #17 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/framework/web/CController.php(265): <strong>CController</strong>-><strong>runActionWithFilters</strong>(SurveyAdmin, array()) </div> <div class="code"><pre><span class="ln">260</span> { <span class="ln">261</span> if(($parent=$this->getModule())===null) <span class="ln">262</span> $parent=Yii::app(); <span class="ln">263</span> if($parent->beforeControllerAction($this,$action)) <span class="ln">264</span> { <span class="error"><span class="ln error-ln">265</span> $this->runActionWithFilters($action,$this->filters()); </span><span class="ln">266</span> $parent->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->missingAction($actionID); </pre></div> </td> </tr> <tr class="trace app collapsed"> <td class="number"> #18 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/application/controllers/AdminController.php(169): <strong>CController</strong>-><strong>run</strong>("survey") </div> <div class="code"><pre><span class="ln">164</span> $this->redirect(array('/admin/authentication/sa/login')); <span class="ln">165</span> } <span class="ln">166</span> <span class="ln">167</span> } <span class="ln">168</span> <span class="error"><span class="ln error-ln">169</span> return parent::run($action); </span><span class="ln">170</span> } <span class="ln">171</span> <span class="ln">172</span> /** <span class="ln">173</span> * Routes all the actions to their respective places <span class="ln">174</span> * </pre></div> </td> </tr> <tr class="trace core collapsed"> <td class="number"> #19 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/framework/web/CWebApplication.php(282): <strong>AdminController</strong>-><strong>run</strong>("survey") </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->_controller; <span class="ln">280</span> $this->_controller=$controller; <span class="ln">281</span> $controller->init(); <span class="error"><span class="ln error-ln">282</span> $controller->run($actionID); </span><span class="ln">283</span> $this->_controller=$oldController; <span class="ln">284</span> } <span class="ln">285</span> else <span class="ln">286</span> throw new CHttpException(404,Yii::t('yii','Unable to resolve the request "{route}".', <span class="ln">287</span> array('{route}'=>$route===''?$this->defaultController:$route))); </pre></div> </td> </tr> <tr class="trace core collapsed"> <td class="number"> #20 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-><strong>runController</strong>("admin/survey/sa/insert") </div> <div class="code"><pre><span class="ln">136</span> foreach(array_splice($this->catchAllRequest,1) as $name=>$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->getUrlManager()->parseUrl($this->getRequest()); <span class="error"><span class="ln error-ln">141</span> $this->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"> #21 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/framework/base/CApplication.php(180): <strong>CWebApplication</strong>-><strong>processRequest</strong>() </div> <div class="code"><pre><span class="ln">175</span> public function run() <span class="ln">176</span> { <span class="ln">177</span> if($this->hasEventHandler('onBeginRequest')) <span class="ln">178</span> $this->onBeginRequest(new CEvent($this)); <span class="ln">179</span> register_shutdown_function(array($this,'end'),0,false); <span class="error"><span class="ln error-ln">180</span> $this->processRequest(); </span><span class="ln">181</span> if($this->hasEventHandler('onEndRequest')) <span class="ln">182</span> $this->onEndRequest(new CEvent($this)); <span class="ln">183</span> } <span class="ln">184</span> <span class="ln">185</span> /** </pre></div> </td> </tr> <tr class="trace app collapsed"> <td class="number"> #22 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /var/www/limesurvey/index.php(200): <strong>CApplication</strong>-><strong>run</strong>() </div> <div class="code"><pre><span class="ln">195</span> die (sprintf('%s should be writable by the webserver (755 or 775).', $runtimePath)); <span class="ln">196</span> } <span class="ln">197</span> } <span class="ln">198</span> <span class="ln">199</span> <span class="error"><span class="ln error-ln">200</span> Yii::createApplication('LSYii_Application', $config)->run(); </span><span class="ln">201</span> <span class="ln">202</span> /* End of file index.php */ <span class="ln">203</span> /* Location: ./index.php */ </pre></div> </td> </tr> </tbody></table> </div> <div class="version"> 2014-05-02 13:52:14 Apache/2.2.22 (Ubuntu) <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.14 </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> <script type="text/javascript"> /*<![CDATA[*/ if(typeof(console)=='object') { console.group("Application Log"); console.log("[13:52:14.309][trace][system.db.ar.CActiveRecord] Plugin.findAllByAttributes()"); console.log("[13:52:14.311][trace][system.db.CDbConnection] Opening DB connection"); console.log("[13:52:14.323][trace][system.db.CDbCommand] Querying SQL: SELECT * FROM `lime_plugins` `t` WHERE `t`.`active`=:yp0. Bound with :yp0=1"); console.log("[13:52:14.337][trace][system.db.ar.CActiveRecord] SettingGlobal.findAll()"); console.log("[13:52:14.337][trace][system.db.CDbCommand] Querying SQL: SELECT * FROM `lime_settings_global` `t`"); console.log("[13:52:14.451][trace][system.db.ar.CActiveRecord] Permission.findByAttributes()"); console.log("[13:52:14.452][trace][system.db.CDbCommand] Querying SQL: SELECT * FROM `lime_permissions` `t` WHERE `t`.`entity_id`=:yp0 AND `t`.`entity`=:yp1 AND `t`.`uid`=:yp2 AND `t`.`permission`=:yp3 LIMIT 1. Bound with :yp0=0, :yp1=\'global\', :yp2=58, :yp3=\'superadmin\'"); console.log("[13:52:14.452][trace][system.db.ar.CActiveRecord] Permission.findByAttributes()"); console.log("[13:52:14.452][trace][system.db.CDbCommand] Querying SQL: SELECT * FROM `lime_permissions` `t` WHERE `t`.`entity_id`=:yp0 AND `t`.`uid`=:yp1 AND `t`.`entity`=:yp2 AND `t`.`permission`=:yp3 LIMIT 1. Bound with :yp0=0, :yp1=58, :yp2=\'global\', :yp3=\'surveys\'"); console.log("[13:52:14.453][trace][system.db.ar.CActiveRecord] Permission.findByAttributes()"); console.log("[13:52:14.453][trace][system.db.CDbCommand] Querying SQL: SELECT * FROM `lime_permissions` `t` WHERE `t`.`entity_id`=:yp0 AND `t`.`uid`=:yp1 AND `t`.`entity`=:yp2 AND `t`.`permission`=:yp3 LIMIT 1. Bound with :yp0=0, :yp1=58, :yp2=\'global\', :yp3=\'templates\'"); console.log("[13:52:14.454][trace][system.db.ar.CActiveRecord] Permission.findByAttributes()"); console.log("[13:52:14.454][trace][system.db.CDbCommand] Querying SQL: SELECT * FROM `lime_permissions` `t` WHERE `t`.`entity_id`=:yp0 AND `t`.`uid`=:yp1 AND `t`.`entity`=:yp2 AND `t`.`permission`=:yp3 LIMIT 1. Bound with :yp0=0, :yp1=\'58\', :yp2=\'template\', :yp3=\'basic\'"); console.log("[13:52:14.470][trace][system.db.ar.CActiveRecord] Survey.findByPk()"); console.log("[13:52:14.470][trace][system.db.CDbCommand] Querying SQL: SELECT * FROM `lime_surveys` `t` WHERE `t`.`sid`=149151 LIMIT 1"); console.groupEnd(); } /*]]>*/ </script></body></html> | ||||
Bug heat | 4 | ||||
Complete LimeSurvey version number (& build) | 2.05+ Build 140422 | ||||
I will donate to the project if issue is resolved | No | ||||
Browser | firefox | ||||
Database type & version | MySQL: 5.5.31 | ||||
Server OS (if known) | Ubuntu 12.04.2 LTS (GNU/Linux 3.5.0-23-generic x86_64) | ||||
Webserver software & version (if known) | Apache/2.2.22 | ||||
PHP Version | PHP 5.3 | ||||
What permissions does the user have? |
|
Helo |
|
I am sorry but I cannot reproduce this. Can you activate debug mode in /Application/config/config.php and attach the full debug output (when the error happens) as HTML file? Thank you |
|
the htm error page in the joined file |
|
Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&id=14199 |
|
it's ok now |
|
2.05+ Build 140502 released. |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2014-04-30 16:13 | zewood | New Issue | |
2014-04-30 16:13 | zewood | Status | new => assigned |
2014-04-30 16:13 | zewood | Assigned To | => c_schmitz |
2014-05-02 09:55 | c_schmitz | Note Added: 29921 | |
2014-05-02 09:55 | c_schmitz | Status | assigned => feedback |
2014-05-02 09:59 | zewood | File Added: Capture.JPG | |
2014-05-02 10:00 | zewood | Note Added: 29922 | |
2014-05-02 10:00 | zewood | Status | feedback => assigned |
2014-05-02 12:48 | c_schmitz | Note Added: 29933 | |
2014-05-02 12:48 | c_schmitz | Status | assigned => feedback |
2014-05-02 13:58 | zewood | Note Added: 29941 | |
2014-05-02 13:58 | zewood | Status | feedback => assigned |
2014-05-02 13:58 | zewood | File Added: PHP warning.htm | |
2014-05-02 14:04 | c_schmitz | Changeset attached | => LimeSurvey master fccdb298 |
2014-05-02 14:04 | c_schmitz | Note Added: 29942 | |
2014-05-02 14:04 | c_schmitz | Resolution | open => fixed |
2014-05-02 14:04 | c_schmitz | Status | assigned => resolved |
2014-05-02 14:04 | c_schmitz | Fixed in Version | => 2.05+ |
2014-05-02 14:52 | zewood | Note Added: 29943 | |
2014-05-02 14:52 | zewood | Note Edited: 29943 | |
2014-05-02 15:10 | c_schmitz | Note Added: 29944 | |
2014-05-02 15:10 | c_schmitz | Status | resolved => closed |