View Issue Details

This bug affects 1 person(s).
 6
IDProjectCategoryView StatusLast Update
07291Bug reportsSurvey takingpublic2013-02-12 22:57
Reporterpcolvin Assigned Toc_schmitz  
PrioritynormalSeveritypartial_block 
Status closedResolutionduplicate 
Product Version2.00+ 
Summary07291: 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.

TagsNo 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) &amp;&amp; $usesleft&lt;=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-&gt;completed = $today;
<span class="ln">953</span>                 } else {
<span class="ln">954</span>                     $oTokenInformation-&gt;completed = &#039;Y&#039;;
<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()-&gt;find(&#039;participant_id = :pid AND survey_id = :sid AND token_id = :tid&#039;, array(&#039;:pid&#039;=&gt;$participant_id, &#039;:sid&#039;=&gt;$surveyid, &#039;:tid&#039;=&gt;$usesrow-&gt;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-&gt;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-&gt;date_completed = $slquery-&gt;date_created;
<span class="ln">966</span>                     }
<span class="ln">967</span>                     $slquery-&gt;save();
<span class="ln">968</span>                 }
<span class="ln">969</span>             }
<span class="ln">970</span>             $oTokenInformation-&gt;usesleft = $oTokenInformation-&gt;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>
										&nbsp;/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[&#039;survey_&#039;.$surveyid][&#039;thistoken&#039;]))
<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>
										&nbsp;/home/fdmjweb/public_html/limesurvey/application/controllers/survey/index.php(651): <strong>SurveyRuntimeHelper</strong>-><strong>run</strong>(&quot;134255&quot;, array(&quot;surveyid&quot; =&gt; &quot;134255&quot;, &quot;thissurvey&quot; =&gt; array(&quot;sid&quot; =&gt; &quot;134255&quot;, &quot;owner_id&quot; =&gt; &quot;3&quot;, &quot;admin&quot; =&gt; &quot;Philip Colvin&quot;, &quot;active&quot; =&gt; &quot;Y&quot;, ...), &quot;thisstep&quot; =&gt; &quot;2&quot;, &quot;clienttoken&quot; =&gt; &quot;e39ssghqquwz8k3&quot;, ...))				</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(&#039;application.helpers.SurveyRuntimeHelper&#039;);
<span class="ln">650</span>         $tmp = new SurveyRuntimeHelper();
<span class="error"><span class="ln error-ln">651</span>         $tmp-&gt;run($surveyid,$redata);
</span><span class="ln">652</span> 
<span class="ln">653</span>         if (isset($_POST[&#039;saveall&#039;]) || isset($flashmessage))
<span class="ln">654</span>         {
<span class="ln">655</span>             echo &quot;&lt;script type=&#039;text/javascript&#039;&gt; $(document).ready( function() { alert(&#039;&quot;.$clang-&gt;gT(&quot;Your responses were successfully saved.&quot;,&quot;js&quot;).&quot;&#039;);}) &lt;/script&gt;&quot;;
<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>
										&nbsp;/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-&gt;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>
										&nbsp;/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, &#039;run&#039;);
<span class="ln">72</span>         if($method-&gt;getNumberOfParameters()&gt;0)
<span class="ln">73</span>             return $this-&gt;runWithParamsInternal($this, $method, $params);
<span class="ln">74</span>         else
<span class="error"><span class="ln error-ln">75</span>             return $this-&gt;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>
										&nbsp;/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-&gt;_action;
<span class="ln">306</span>         $this-&gt;_action=$action;
<span class="ln">307</span>         if($this-&gt;beforeAction($action))
<span class="ln">308</span>         {
<span class="error"><span class="ln error-ln">309</span>             if($action-&gt;runWithParams($this-&gt;getActionParams())===false)
</span><span class="ln">310</span>                 $this-&gt;invalidActionParams($action);
<span class="ln">311</span>             else
<span class="ln">312</span>                 $this-&gt;afterAction($action);
<span class="ln">313</span>         }
<span class="ln">314</span>         $this-&gt;_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>
										&nbsp;/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-&gt;runAction($action);
</span><span class="ln">288</span>         else
<span class="ln">289</span>         {
<span class="ln">290</span>             $priorAction=$this-&gt;_action;
<span class="ln">291</span>             $this-&gt;_action=$action;
<span class="ln">292</span>             CFilterChain::create($this,$action,$filters)-&gt;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>
										&nbsp;/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-&gt;getModule())===null)
<span class="ln">263</span>                 $parent=Yii::app();
<span class="ln">264</span>             if($parent-&gt;beforeControllerAction($this,$action))
<span class="ln">265</span>             {
<span class="error"><span class="ln error-ln">266</span>                 $this-&gt;runActionWithFilters($action,$this-&gt;filters());
</span><span class="ln">267</span>                 $parent-&gt;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-&gt;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>
										&nbsp;/home/fdmjweb/public_html/limesurvey/framework/web/CWebApplication.php(276): <strong>CController</strong>-><strong>run</strong>(&quot;index&quot;)				</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-&gt;_controller;
<span class="ln">274</span>             $this-&gt;_controller=$controller;
<span class="ln">275</span>             $controller-&gt;init();
<span class="error"><span class="ln error-ln">276</span>             $controller-&gt;run($actionID);
</span><span class="ln">277</span>             $this-&gt;_controller=$oldController;
<span class="ln">278</span>         }
<span class="ln">279</span>         else
<span class="ln">280</span>             throw new CHttpException(404,Yii::t(&#039;yii&#039;,&#039;Unable to resolve the request &quot;{route}&quot;.&#039;,
<span class="ln">281</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">
				#8			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/fdmjweb/public_html/limesurvey/framework/web/CWebApplication.php(135): <strong>CWebApplication</strong>-><strong>runController</strong>(&quot;survey/index&quot;)				</div>

				<div class="code"><pre><span class="ln">130</span>             foreach(array_splice($this-&gt;catchAllRequest,1) as $name=&gt;$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-&gt;getUrlManager()-&gt;parseUrl($this-&gt;getRequest());
<span class="error"><span class="ln error-ln">135</span>         $this-&gt;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>
										&nbsp;/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-&gt;hasEventHandler(&#039;onBeginRequest&#039;))
<span class="ln">161</span>             $this-&gt;onBeginRequest(new CEvent($this));
<span class="error"><span class="ln error-ln">162</span>         $this-&gt;processRequest();
</span><span class="ln">163</span>         if($this-&gt;hasEventHandler(&#039;onEndRequest&#039;))
<span class="ln">164</span>             $this-&gt;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>
										&nbsp;/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 . &#039;yii&#039; . EXT;
<span class="ln">176</span> require_once APPPATH . &#039;core/LSYii_Application&#039; . EXT;
<span class="ln">177</span> 
<span class="error"><span class="ln error-ln">178</span> Yii::createApplication(&#039;LSYii_Application&#039;, APPPATH . &#039;config/config&#039; . EXT)-&gt;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>
PHP notice.htm (19,006 bytes)   
Bug heat6
Complete LimeSurvey version number (& build)130206
I will donate to the project if issue is resolvedNo
BrowserFirefox 18.0.2
Database type & versionMySQL 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 Version5.2.17

Relationships

duplicate of 07278 closedc_schmitz Completing survey from pre-existing token fails on final submit 

Users monitoring this issue

There are no users monitoring this issue.

Activities

DenisChenu

DenisChenu

2013-02-11 22:15

developer   ~24025

Can not reproduce, can you put an example of your survey ?

Did your mail system work ?

c_schmitz

c_schmitz

2013-02-11 22:51

administrator   ~24026

Set debug to 1 in /application/config/config.php and see if you get an error.
If you do please attach the error page as file to this bug.

pcolvin

pcolvin

2013-02-12 15:29

reporter   ~24032

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.

pcolvin

pcolvin

2013-02-12 17:34

reporter   ~24035

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.

pcolvin

pcolvin

2013-02-12 19:09

reporter   ~24036

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.

Issue History

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