<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
What if it's on an actual web server?<div><br></div><div><br></div><div><br></div><div><div><div><div id="SkyDrivePlaceholder"></div><hr id="stopSpelling">From: Paul.Swanson@harlandfs.com<br>To: xerte@lists.nottingham.ac.uk<br>Date: Mon, 6 Aug 2012 22:39:53 +0000<br>Subject: [Xerte] Desktop Xerte 2.17 -- having trouble reading data from external script<br><br>





<style><!--
.ExternalClass p.ecxMsoNormal, .ExternalClass li.ecxMsoNormal, .ExternalClass div.ecxMsoNormal
{margin-bottom:.0001pt;font-size:11.0pt;font-family:"Calibri","sans-serif";}
.ExternalClass a:link, .ExternalClass span.ecxMsoHyperlink
{color:blue;text-decoration:underline;text-underline:single;}
.ExternalClass a:visited, .ExternalClass span.ecxMsoHyperlinkFollowed
{color:purple;text-decoration:underline;text-underline:single;}
.ExternalClass span.ecxEmailStyle17
{font-family:"Calibri","sans-serif";color:windowtext;}
.ExternalClass span.ecxSpellE
{;}
.ExternalClass .ecxMsoChpDefault
{font-family:"Calibri","sans-serif";}
@page WordSection1
{size:8.5in 11.0in;}
.ExternalClass div.ecxWordSection1
{page:WordSection1;}

--></style>


<div class="ecxWordSection1">
<p class="ecxMsoNormal">I’m have a devil of a time getting a <span class="ecxSpellE">Xerte</span> app to read the response from a PHP script when run through a browser. It works fine in Preview mode, and I know the script is getting the login information and returning
 a string because in preview mode I receive and can display the correct response with info from my database. I also have the PHP database script email me the same string. This works beautifully in Preview mode, but when I copy my
<span class="ecxSpellE">rlo</span> and other published files to <span class="ecxSpellE">
localhost</span> and run it from there, <span class="ecxSpellE">Xerte</span> prints ‘undefined’ for the
<span class="ecxSpellE">rawData</span> property returned from a <span class="ecxSpellE">
sendAndLoadVars</span> call. The database script still emails me the correct response.</p>
<p class="ecxMsoNormal"> </p>
<p class="ecxMsoNormal">Here’s what I’m sending to my PHP authentication script (domain is defined in a login script, and the parent Page icon has an id of
<span class="ecxSpellE">loginCheck</span>):</p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">// real
<span class="ecxSpellE">url</span></span></p>
<p class="ecxMsoNormal"><span class="ecxSpellE"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">URLString</span></span><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> = domain + '/<span class="ecxSpellE">wbt</span>/app/admin/<span class="ecxSpellE">authenticate.php</span>';</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> </span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">// pass values to external script</span></p>
<p class="ecxMsoNormal"><span class="ecxSpellE"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">loginVars</span></span><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> = new
<span class="ecxSpellE">LoadVars</span> ();</span></p>
<p class="ecxMsoNormal"><span class="ecxSpellE"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">loginVars.action</span></span><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> = 'authenticate';</span></p>
<p class="ecxMsoNormal"><span class="ecxSpellE"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">loginVars.login</span></span><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> = username;</span></p>
<p class="ecxMsoNormal"><span class="ecxSpellE"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">loginVars.sku</span></span><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> =
<span class="ecxSpellE">sku</span>;</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> </span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">// send to login script</span></p>
<p class="ecxMsoNormal"><span class="ecxSpellE"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">loginCheck.sendAndLoadVars</span></span><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">(<span class="ecxSpellE">URLString</span>,
<span class="ecxSpellE">loginVars</span>);</span></p>
<p class="ecxMsoNormal"> </p>
<p class="ecxMsoNormal">Following the above, I have an Interaction with an Event icon (<span class="ecxSpellE">eventName</span> =
<span class="ecxSpellE">onSendAndLoadVars</span>, icon = <span class="ecxSpellE">loginCheck</span>). Attached to the event is a script icon with:</p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">// initialize
<span class="ecxSpellE">btnPath</span> -- assume not authenticated</span></p>
<p class="ecxMsoNormal"><span class="ecxSpellE"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">btnPath</span></span><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> = 1; // 1 is the fail path</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">message = ''; // initialize message</span></p>
<p class="ecxMsoNormal"><span class="ecxSpellE"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">responseMessage</span></span><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> = ''; // initialize response message</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> </span></p>
<p class="ecxMsoNormal"><span class="ecxSpellE"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">rawStuff</span></span><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> =
<span class="ecxSpellE">loginCheck.rawData</span>;</span></p>
<p class="ecxMsoNormal"><span class="ecxSpellE"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">loginInstructions.setText</span></span><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">(<span class="ecxSpellE">loginCheck.rawData</span>);</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> </span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">//<span class="ecxSpellE">rawStuff</span> = replace(<span class="ecxSpellE">rawStuff</span>, '<sup>&<span class="ecxSpellE">reg</span>;</sup>', '');</span></p>
<p class="ecxMsoNormal"><span class="ecxSpellE"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">rawInfoArray</span></span><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> =
<span class="ecxSpellE">rawStuff.split</span>('&'); // save string pairs into an array</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> </span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">for (<span class="ecxSpellE">i</span> = 0;
<span class="ecxSpellE">i</span> < <span class="ecxSpellE">rawInfoArray.length</span>; <span class="ecxSpellE">
i</span>++) { // break pairs into smaller arrays and parse</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"><span style=""> 
</span></span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"><span style="">  </span><span class="ecxSpellE">tempArray</span> =
<span class="ecxSpellE">rawInfoArray</span>[<span class="ecxSpellE">i</span>].split('='); // split on = sign</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"><span style="">   
</span></span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"><span style="">  </span>switch (<span class="ecxSpellE">tempArray</span>[0]) {</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"><span style="">   
</span>case '<span class="ecxSpellE">reg_id</span>':</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"><span style="">     
</span><span class="ecxSpellE">sid</span> = <span class="ecxSpellE">tempArray</span>[1];</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"><span style="">     
</span><span class="ecxSpellE">btnPath</span> = 0;</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"><span style="">     
</span>break;</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"><span style="">   
</span>case 'message':</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"><span style="">     
</span><span class="ecxSpellE">responseMessage</span> = <span class="ecxSpellE">tempArray</span>[1];</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"><span style="">     
</span>break;</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"><span style=""> 
</span>}</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> </span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">}</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> </span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">debug('<span class="ecxSpellE">sid</span>: ' +
<span class="ecxSpellE">sid</span> + '\<span class="ecxSpellE">nresponseMessage</span>: ' +
<span class="ecxSpellE">responseMessage</span>);</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">debug(<span class="ecxSpellE">loginCheck.rawData</span>);</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> </span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">// display appropriate response</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">if (<span class="ecxSpellE">btnPath</span> == 1) {
</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"><span style="">  </span>message = '<p>Could not retrieve account from the database.</p><<span class="ecxSpellE">br</span> /><p>' +
<span class="ecxSpellE">responseMessage</span> + '</p>';</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">}</span></p>
<p class="ecxMsoNormal"> </p>
<p class="ecxMsoNormal">I get all the expected debug info in Preview and login is successful. Debug response is:</p>
<p class="ecxMsoNormal"><span class="ecxSpellE"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">sid</span></span><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">: 71</span></p>
<p class="ecxMsoNormal"><span class="ecxSpellE"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">responseMessage</span></span><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">: User Found in Database<<span class="ecxSpellE">br</span>/></span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> </span></p>
<p class="ecxMsoNormal"><span class="ecxSpellE"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">reg_id</span></span><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">=71&message=User Found in Database<<span class="ecxSpellE">br</span>/></span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> </span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0">0</span></p>
<p class="ecxMsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#7030A0"> </span></p>
<p class="ecxMsoNormal">Any ideas would be appreciated.</p>
<p class="ecxMsoNormal"> </p>
<p class="ecxMsoNormal"><b style=""><span style="color:#365F91">Paul Swanson</span></b></p>
<p class="ecxMsoNormal"><span style="font-size:10.0pt;color:#595959">Internal Business Systems Analyst</span></p>
<p class="ecxMsoNormal"><span style="font-size:10.0pt;color:#595959">Internal Business Intelligence</span></p>
<p class="ecxMsoNormal"><span style="font-size:10.0pt;color:#595959">Harland Financial Solutions</span></p>
<p class="ecxMsoNormal"><span style="font-size:10.0pt;color:#595959">(800) 274-7280 Ext. 2462</span></p>
<p class="ecxMsoNormal"><span style="font-size:10.0pt;color:#595959">Paul.Swanson@harlandfs.com</span><span style=""></span></p>
<p class="ecxMsoNormal"> </p>
</div>
<br>

This message and any attachment are intended solely for the addressee and may 
contain confidential information. If you have received this message in error, 
please send it back to me, and immediately delete it.   Please do not use, 
copy or disclose the information contained in this message or in any attachment.  
Any views or opinions expressed by the author of this email do not necessarily 
reflect the views of the University of Nottingham.
<BR>

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system:
you are advised to perform your own checks. Email communications with the
University of Nottingham may be monitored as permitted by UK legislation.
<BR>


<br>_______________________________________________
Xerte mailing list
Xerte@lists.nottingham.ac.uk
http://lists.nottingham.ac.uk/mailman/listinfo/xerte

This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system:
you are advised to perform your own checks. Email communications with the
University of Nottingham may be monitored as permitted by UK legislation.</div></div></div>                                     </div></body>
</html>