View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
06714 | Bug reports | Survey taking | public | 2012-10-16 13:59 | 2012-10-16 17:27 |
Reporter | kwilliams | Assigned To | c_schmitz | ||
Priority | normal | Severity | block | ||
Status | closed | Resolution | fixed | ||
Product Version | 2.00+ | ||||
Fixed in Version | 2.00+ | ||||
Summary | 06714: MSSQL Syntax error upon completing a survey started via RemoteControl2 | ||||
Description | After injecting a user and generating a token using the RemoteControl2 API I redirect the user to the survey with their unique token. Upon completing the survey I receive the following error: CDbCommand failed to execute the SQL statement: SQLSTATE[42S22]: [Microsoft][SQL Server Native Client 10.0][SQL Server]Invalid column name '16905'. | ||||
Steps To Reproduce | (RPC CALL) Redirect to survey using returned token and the $SurveyId. Complete Survey | ||||
Additional Information | 16905 is the participant ID injected into the database by the RemoteControl2 API call. | ||||
Tags | No tags attached. | ||||
Attached Files | PHP notice.htm (19,450 bytes)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!-- saved from url=(0057)http://survey.staging.coinshare.nl/index.php/survey/index --> <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: surveyid </p> <div class="source"> <p class="file">C:\proj\coinshare.nl\trunk\survey\htdocs\application\helpers\replacements_helper.php(771)</p> <div class="code"><pre><span class="ln">759</span> })(); <span class="ln">760</span> </script> <span class="ln">761</span> EOD; <span class="ln">762</span> break; <span class="ln">763</span> } <span class="ln">764</span> } <span class="ln">765</span> <span class="ln">766</span> $_endtext = ''; <span class="ln">767</span> if (isset($thissurvey['surveyls_endtext']) && trim($thissurvey['surveyls_endtext'])!='') <span class="ln">768</span> { <span class="ln">769</span> $_endtext = $thissurvey['surveyls_endtext']; <span class="ln">770</span> } <span class="error"><span class="ln error-ln">771</span> if (isset($_SESSION['survey_'.$surveyid]) && isset($_SESSION['survey_'.$surveyid]['register_errormsg'])) </span><span class="ln">772</span> { <span class="ln">773</span> $register_errormsg=$_SESSION['survey_'.$surveyid]['register_errormsg']; <span class="ln">774</span> unset($_SESSION['survey_'.$surveyid]['register_errormsg']); <span class="ln">775</span> } <span class="ln">776</span> <span class="ln">777</span> <span class="ln">778</span> // Set the array of replacement variables here - don't include curly braces <span class="ln">779</span> $coreReplacements = array(); <span class="ln">780</span> $coreReplacements['ACTIVE'] = (isset($thissurvey['active']) && !($thissurvey['active'] != "Y")); <span class="ln">781</span> $coreReplacements['AID'] = isset($questiondetails['aid']) ? $questiondetails['aid'] : ''; <span class="ln">782</span> $coreReplacements['ANSWER'] = isset($answer) ? $answer : ''; // global <span class="ln">783</span> $coreReplacements['ANSWERSCLEARED'] = $clang->gT("Answers cleared"); </pre></div> </div> <div class="traces"> <h2>Stack Trace</h2> <table style="width:100%;"> <tbody><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> C:\proj\coinshare.nl\trunk\survey\htdocs\application\helpers\SurveyRuntimeHelper.php(363): <strong>templatereplace</strong>("http://www.coinshare.nl/survey/in/{SID}/{TOKEN}", array("SID" => "134848", "SAVEDID" => "1", "TOKEN" => "axpkigdv7kykmtk")) </div> <div class="code"><pre><span class="ln">358</span> //field for limereplace stuff, and do transformations! <span class="ln">359</span> $thissurvey['surveyls_url'] = passthruReplace($thissurvey['surveyls_url'], $thissurvey); <span class="ln">360</span> $thissurvey['surveyls_url'] = templatereplace($thissurvey['surveyls_url'],array('SID'=>$thissurvey['sid'], <span class="ln">361</span> 'SAVEDID'=>(isset($_SESSION[$LEMsessid]['srid']) ? $_SESSION[$LEMsessid]['srid'] : ''), <span class="ln">362</span> 'TOKEN'=>(isset($clienttoken) ? $clienttoken : ''), <span class="error"><span class="ln error-ln">363</span> )); // to do INSERTANS substitutions </span><span class="ln">364</span> <span class="ln">365</span> //END PAGE - COMMIT CHANGES TO DATABASE <span class="ln">366</span> if ($thissurvey['active'] != "Y") //If survey is not active, don't really commit <span class="ln">367</span> { <span class="ln">368</span> if ($thissurvey['assessments'] == "Y") </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> C:\proj\coinshare.nl\trunk\survey\htdocs\application\controllers\survey\index.php(660): <strong>SurveyRuntimeHelper</strong>-><strong>run</strong>("134848", array("surveyid" => "134848", "thissurvey" => array("surveyls_survey_id" => "134848", "surveyls_language" => "nl", "surveyls_title" => "SoftTech Automatisering: Survey #2", "surveyls_description" => "<span style="color: rgb(0, 0, 0); font-family: Arial, Helvetica,...", ...), "thisstep" => "3", "clienttoken" => "axpkigdv7kykmtk", ...)) </div> <div class="code"><pre><span class="ln">655</span> //Send local variables to the appropriate survey type <span class="ln">656</span> unset($redata); <span class="ln">657</span> $redata = compact(array_keys(get_defined_vars())); <span class="ln">658</span> Yii::import('application.helpers.SurveyRuntimeHelper'); <span class="ln">659</span> $tmp = new SurveyRuntimeHelper(); <span class="error"><span class="ln error-ln">660</span> $tmp->run($surveyid,$redata); </span><span class="ln">661</span> <span class="ln">662</span> if (isset($_POST['saveall']) || isset($flashmessage)) <span class="ln">663</span> { <span class="ln">664</span> echo "<script type='text/javascript'> $(document).ready( function() { alert('".$clang->gT("Your responses were successfully saved.","js")."');}) </script>"; <span class="ln">665</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> C:\proj\coinshare.nl\trunk\survey\htdocs\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> C:\proj\coinshare.nl\trunk\survey\htdocs\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> C:\proj\coinshare.nl\trunk\survey\htdocs\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> C:\proj\coinshare.nl\trunk\survey\htdocs\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> C:\proj\coinshare.nl\trunk\survey\htdocs\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> C:\proj\coinshare.nl\trunk\survey\htdocs\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> C:\proj\coinshare.nl\trunk\survey\htdocs\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> C:\proj\coinshare.nl\trunk\survey\htdocs\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> C:\proj\coinshare.nl\trunk\survey\htdocs\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> </tbody></table> </div> <div class="version"> 2012-10-16 16:55:06 Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1 <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) | 121016 | ||||
I will donate to the project if issue is resolved | No | ||||
Browser | Google Chrome 22.0.1229.94 m | ||||
Database type & version | Microsoft SQL Server 2008 | ||||
Server OS (if known) | Windows Server 2008 Web Edition (Database) | ||||
Webserver software & version (if known) | XAMPP Apache 2.2 Windows 7 Professional 64bit | ||||
PHP Version | 5.3 | ||||
There is no field participant_id in the token table. Try 'tid' for token ID instead or add an attribute to the token table where you store your propritary participant ID. |
|
That's odd, because my tokens_<surveyID> table has that column in it. I've attached a screenshot. |
|
I've added a screenshot of a freshly created token table to make sure that the API calls are not for some bizarre reason generating an extra column. |
|
Yes, you are right. Please try to reproduce the error again but first switch debug to 2 in /application/config/config.php |
|
File attached. |
|
Please update to v2.0 Build 121017 |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2012-10-16 13:59 | kwilliams | New Issue | |
2012-10-16 14:46 | c_schmitz | Assigned To | => c_schmitz |
2012-10-16 14:46 | c_schmitz | Status | new => assigned |
2012-10-16 14:48 | c_schmitz | Note Added: 21365 | |
2012-10-16 14:48 | c_schmitz | Status | assigned => feedback |
2012-10-16 14:51 | c_schmitz | Note Edited: 21365 | |
2012-10-16 15:23 | kwilliams | Note Added: 21366 | |
2012-10-16 15:23 | kwilliams | Status | feedback => assigned |
2012-10-16 15:25 | kwilliams | File Added: 10-16-2012 3-21-25 PM.png | |
2012-10-16 15:25 | kwilliams | Note Edited: 21366 | |
2012-10-16 15:45 | kwilliams | File Added: 10-16-2012 3-43-09 PM.png | |
2012-10-16 16:33 | kwilliams | Note Added: 21373 | |
2012-10-16 16:50 | c_schmitz | Note Added: 21374 | |
2012-10-16 16:50 | c_schmitz | Status | assigned => feedback |
2012-10-16 16:59 | kwilliams | File Added: PHP notice.htm | |
2012-10-16 16:59 | kwilliams | Note Added: 21376 | |
2012-10-16 16:59 | kwilliams | Status | feedback => assigned |
2012-10-16 17:04 | kwilliams | Issue Monitored: kwilliams | |
2012-10-16 17:27 | c_schmitz | Status | assigned => resolved |
2012-10-16 17:27 | c_schmitz | Fixed in Version | => 2.00+ |
2012-10-16 17:27 | c_schmitz | Resolution | open => fixed |
2012-10-16 17:27 | c_schmitz | Note Added: 21381 | |
2012-10-16 17:27 | c_schmitz | Status | resolved => closed |
2021-08-08 23:37 | guest | Bug heat | 4 => 6 |