View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
07291 | Bug reports | Survey taking | public | 2013-02-11 22:03 | 2013-02-12 22:57 |
Reporter | pcolvin | Assigned To | c_schmitz | ||
Priority | normal | Severity | partial_block | ||
Status | closed | Resolution | duplicate | ||
Product Version | 2.00+ | ||||
Summary | 07291: Submitting Survey Problems | ||||
Description | When this survey is submitted, it displays a blank page (no confirmation page) and does not send an email to the email address in the token entry. It also does not set the number of uses to zero allowing the token entry to be used multiple times. | ||||
Steps To Reproduce | Happens each time the link to the survey and token is used. Every time after the Submit button is clicked to submit the survey. This survey is currently live and can be access by this link. This link is to a token that has already be used. http://www.fdmj.com/limesurvey/index.php/survey/index/sid/134255/token/e39ssghqquwz8k3/lang/en | ||||
Additional Information | Tried to delete and reinstall Limesurvey thinking I may have had a problem with one of the updates. | ||||
Tags | No tags attached. | ||||
Attached Files | PHP notice.htm (19,006 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 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 variable: usesrow </p> <div class="source"> <p class="file">/home/fdmjweb/public_html/limesurvey/application/helpers/frontend_helper.php(958)</p> <div class="code"><pre><span class="ln">946</span> { <span class="ln">947</span> if (isset($usesleft) && $usesleft<=1) <span class="ln">948</span> { <span class="ln">949</span> // Finish the token <span class="ln">950</span> if (isTokenCompletedDatestamped($thissurvey)) <span class="ln">951</span> { <span class="ln">952</span> $oTokenInformation->completed = $today; <span class="ln">953</span> } else { <span class="ln">954</span> $oTokenInformation->completed = 'Y'; <span class="ln">955</span> } <span class="ln">956</span> if(!empty($participant_id)) <span class="ln">957</span> { <span class="error"><span class="ln error-ln">958</span> $slquery = Survey_links::model()->find('participant_id = :pid AND survey_id = :sid AND token_id = :tid', array(':pid'=>$participant_id, ':sid'=>$surveyid, ':tid'=>$usesrow->tid)); </span><span class="ln">959</span> <span class="ln">960</span> if (isTokenCompletedDatestamped($thissurvey)) <span class="ln">961</span> { <span class="ln">962</span> $slquery->date_completed = $today; <span class="ln">963</span> } else { <span class="ln">964</span> // Update the survey_links table if necessary, to protect anonymity, use the date_created field date <span class="ln">965</span> $slquery->date_completed = $slquery->date_created; <span class="ln">966</span> } <span class="ln">967</span> $slquery->save(); <span class="ln">968</span> } <span class="ln">969</span> } <span class="ln">970</span> $oTokenInformation->usesleft = $oTokenInformation->usesleft-1; </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> /home/fdmjweb/public_html/limesurvey/application/helpers/SurveyRuntimeHelper.php(436): <strong>submittokens</strong>() </div> <div class="code"><pre><span class="ln">431</span> } <span class="ln">432</span> <span class="ln">433</span> //Update the token if needed and send a confirmation email <span class="ln">434</span> if (isset($_SESSION['survey_'.$surveyid]['thistoken'])) <span class="ln">435</span> { <span class="error"><span class="ln error-ln">436</span> submittokens(); </span><span class="ln">437</span> } <span class="ln">438</span> <span class="ln">439</span> //Send notifications <span class="ln">440</span> <span class="ln">441</span> sendSubmitNotifications($surveyid); </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> /home/fdmjweb/public_html/limesurvey/application/controllers/survey/index.php(651): <strong>SurveyRuntimeHelper</strong>-><strong>run</strong>("134255", array("surveyid" => "134255", "thissurvey" => array("sid" => "134255", "owner_id" => "3", "admin" => "Philip Colvin", "active" => "Y", ...), "thisstep" => "2", "clienttoken" => "e39ssghqquwz8k3", ...)) </div> <div class="code"><pre><span class="ln">646</span> //Send local variables to the appropriate survey type <span class="ln">647</span> unset($redata); <span class="ln">648</span> $redata = compact(array_keys(get_defined_vars())); <span class="ln">649</span> Yii::import('application.helpers.SurveyRuntimeHelper'); <span class="ln">650</span> $tmp = new SurveyRuntimeHelper(); <span class="error"><span class="ln error-ln">651</span> $tmp->run($surveyid,$redata); </span><span class="ln">652</span> <span class="ln">653</span> if (isset($_POST['saveall']) || isset($flashmessage)) <span class="ln">654</span> { <span class="ln">655</span> echo "<script type='text/javascript'> $(document).ready( function() { alert('".$clang->gT("Your responses were successfully saved.","js")."');}) </script>"; <span class="ln">656</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> /home/fdmjweb/public_html/limesurvey/application/controllers/survey/index.php(18): <strong>index</strong>-><strong>action</strong>() </div> <div class="code"><pre><span class="ln">13</span> <span class="ln">14</span> class index extends CAction { <span class="ln">15</span> <span class="ln">16</span> public function run() <span class="ln">17</span> { <span class="error"><span class="ln error-ln">18</span> $this->action(); </span><span class="ln">19</span> } <span class="ln">20</span> <span class="ln">21</span> function action() <span class="ln">22</span> { <span class="ln">23</span> global $surveyid; </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> /home/fdmjweb/public_html/limesurvey/framework/web/actions/CAction.php(75): <strong>index</strong>-><strong>run</strong>() </div> <div class="code"><pre><span class="ln">70</span> { <span class="ln">71</span> $method=new ReflectionMethod($this, 'run'); <span class="ln">72</span> if($method->getNumberOfParameters()>0) <span class="ln">73</span> return $this->runWithParamsInternal($this, $method, $params); <span class="ln">74</span> else <span class="error"><span class="ln error-ln">75</span> return $this->run(); </span><span class="ln">76</span> } <span class="ln">77</span> <span class="ln">78</span> /** <span class="ln">79</span> * Executes a method of an object with the supplied named parameters. <span class="ln">80</span> * This method is internally used. </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> /home/fdmjweb/public_html/limesurvey/framework/web/CController.php(309): <strong>CAction</strong>-><strong>runWithParams</strong>(array()) </div> <div class="code"><pre><span class="ln">304</span> { <span class="ln">305</span> $priorAction=$this->_action; <span class="ln">306</span> $this->_action=$action; <span class="ln">307</span> if($this->beforeAction($action)) <span class="ln">308</span> { <span class="error"><span class="ln error-ln">309</span> if($action->runWithParams($this->getActionParams())===false) </span><span class="ln">310</span> $this->invalidActionParams($action); <span class="ln">311</span> else <span class="ln">312</span> $this->afterAction($action); <span class="ln">313</span> } <span class="ln">314</span> $this->_action=$priorAction; </pre></div> </td> </tr> <tr class="trace core collapsed"> <td class="number"> #5 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /home/fdmjweb/public_html/limesurvey/framework/web/CController.php(287): <strong>CController</strong>-><strong>runAction</strong>(index) </div> <div class="code"><pre><span class="ln">282</span> * @see runAction <span class="ln">283</span> */ <span class="ln">284</span> public function runActionWithFilters($action,$filters) <span class="ln">285</span> { <span class="ln">286</span> if(empty($filters)) <span class="error"><span class="ln error-ln">287</span> $this->runAction($action); </span><span class="ln">288</span> else <span class="ln">289</span> { <span class="ln">290</span> $priorAction=$this->_action; <span class="ln">291</span> $this->_action=$action; <span class="ln">292</span> CFilterChain::create($this,$action,$filters)->run(); </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> /home/fdmjweb/public_html/limesurvey/framework/web/CController.php(266): <strong>CController</strong>-><strong>runActionWithFilters</strong>(index, array()) </div> <div class="code"><pre><span class="ln">261</span> { <span class="ln">262</span> if(($parent=$this->getModule())===null) <span class="ln">263</span> $parent=Yii::app(); <span class="ln">264</span> if($parent->beforeControllerAction($this,$action)) <span class="ln">265</span> { <span class="error"><span class="ln error-ln">266</span> $this->runActionWithFilters($action,$this->filters()); </span><span class="ln">267</span> $parent->afterControllerAction($this,$action); <span class="ln">268</span> } <span class="ln">269</span> } <span class="ln">270</span> else <span class="ln">271</span> $this->missingAction($actionID); </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> /home/fdmjweb/public_html/limesurvey/framework/web/CWebApplication.php(276): <strong>CController</strong>-><strong>run</strong>("index") </div> <div class="code"><pre><span class="ln">271</span> { <span class="ln">272</span> list($controller,$actionID)=$ca; <span class="ln">273</span> $oldController=$this->_controller; <span class="ln">274</span> $this->_controller=$controller; <span class="ln">275</span> $controller->init(); <span class="error"><span class="ln error-ln">276</span> $controller->run($actionID); </span><span class="ln">277</span> $this->_controller=$oldController; <span class="ln">278</span> } <span class="ln">279</span> else <span class="ln">280</span> throw new CHttpException(404,Yii::t('yii','Unable to resolve the request "{route}".', <span class="ln">281</span> array('{route}'=>$route===''?$this->defaultController:$route))); </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> /home/fdmjweb/public_html/limesurvey/framework/web/CWebApplication.php(135): <strong>CWebApplication</strong>-><strong>runController</strong>("survey/index") </div> <div class="code"><pre><span class="ln">130</span> foreach(array_splice($this->catchAllRequest,1) as $name=>$value) <span class="ln">131</span> $_GET[$name]=$value; <span class="ln">132</span> } <span class="ln">133</span> else <span class="ln">134</span> $route=$this->getUrlManager()->parseUrl($this->getRequest()); <span class="error"><span class="ln error-ln">135</span> $this->runController($route); </span><span class="ln">136</span> } <span class="ln">137</span> <span class="ln">138</span> /** <span class="ln">139</span> * Registers the core application components. <span class="ln">140</span> * This method overrides the parent implementation by registering additional core components. </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> /home/fdmjweb/public_html/limesurvey/framework/base/CApplication.php(162): <strong>CWebApplication</strong>-><strong>processRequest</strong>() </div> <div class="code"><pre><span class="ln">157</span> */ <span class="ln">158</span> public function run() <span class="ln">159</span> { <span class="ln">160</span> if($this->hasEventHandler('onBeginRequest')) <span class="ln">161</span> $this->onBeginRequest(new CEvent($this)); <span class="error"><span class="ln error-ln">162</span> $this->processRequest(); </span><span class="ln">163</span> if($this->hasEventHandler('onEndRequest')) <span class="ln">164</span> $this->onEndRequest(new CEvent($this)); <span class="ln">165</span> } <span class="ln">166</span> <span class="ln">167</span> /** </pre></div> </td> </tr> <tr class="trace app collapsed"> <td class="number"> #10 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /home/fdmjweb/public_html/limesurvey/index.php(178): <strong>CApplication</strong>-><strong>run</strong>() </div> <div class="code"><pre><span class="ln">173</span> * <span class="ln">174</span> */ <span class="ln">175</span> require_once BASEPATH . 'yii' . EXT; <span class="ln">176</span> require_once APPPATH . 'core/LSYii_Application' . EXT; <span class="ln">177</span> <span class="error"><span class="ln error-ln">178</span> Yii::createApplication('LSYii_Application', APPPATH . 'config/config' . EXT)->run(); </span><span class="ln">179</span> <span class="ln">180</span> /* End of file index.php */ <span class="ln">181</span> /* Location: ./index.php */ </pre></div> </td> </tr> </table> </div> <div class="version"> 2013-02-12 09:19:24 Apache/2.2.23 (Unix) mod_ssl/2.2.23 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_jk/1.2.35 <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.10 </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> | ||||
Bug heat | 6 | ||||
Complete LimeSurvey version number (& build) | 130206 | ||||
I will donate to the project if issue is resolved | No | ||||
Browser | Firefox 18.0.2 | ||||
Database type & version | MySQL 5.5.28 | ||||
Server OS (if known) | Linux - Kernel version 2.6.18-408.8.2.el5.lve0.8.61.3 | ||||
Webserver software & version (if known) | Apache 2.2.23 | ||||
PHP Version | 5.2.17 | ||||
Can not reproduce, can you put an example of your survey ? Did your mail system work ? |
|
Set debug to 1 in /application/config/config.php and see if you get an error. |
|
I just uploaded the error page file that I received after clicking the submit button on the survey. The mail system is working. I was able to send out invitations to all participants with no problem. The only thing I am doing differently with this survey is I used the Central Participant Database as the source for the Tokens table records. |
|
I did some more testing today. I created a survey from scratch and received the same result. I dropped the token table and the survey worked normally. I then created a new token table and created a token entry manually and did not import from the participant database. I then tested the survey and it worked normally. Confirmation page displayed, token entry was updated and a confirmation email was received. I will try to import the tokens directly into the survey and see if that fixes the problem. It may have something to do with the Central Participant Database from what I can tell. |
|
Quick update. I exported the token table to a CSV, dropped the table from the survey, and then imported the exported CSV into the survey directly, everything is working properly now. If I use records from the participant database in the tokens table, that is when I have problems. |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2013-02-11 22:03 | pcolvin | New Issue | |
2013-02-11 22:03 | pcolvin | File Added: limesurvey_survey_134255.lss | |
2013-02-11 22:15 | DenisChenu | Note Added: 24025 | |
2013-02-11 22:51 | c_schmitz | Note Added: 24026 | |
2013-02-11 22:51 | c_schmitz | Assigned To | => c_schmitz |
2013-02-11 22:51 | c_schmitz | Status | new => feedback |
2013-02-12 15:27 | pcolvin | File Added: PHP notice.htm | |
2013-02-12 15:29 | pcolvin | Note Added: 24032 | |
2013-02-12 15:29 | pcolvin | Status | feedback => assigned |
2013-02-12 17:34 | pcolvin | Note Added: 24035 | |
2013-02-12 19:09 | pcolvin | Note Added: 24036 | |
2013-02-12 22:55 | c_schmitz | Relationship added | duplicate of 07278 |
2013-02-12 22:57 | c_schmitz | Status | assigned => closed |
2013-02-12 22:57 | c_schmitz | Resolution | open => duplicate |