Heroku Facebook App打破了第一次PHP调用

时间:2013-08-08 23:36:14

标签: php html facebook heroku

我的Heroku Facebook应用程序(PHP应用程序)存在问题。看起来应用程序加载到我的第一个PHP调用,我在我的应用程序的开放JavaScript的一部分。这个应用程序不会在我的桌面上破坏,但在将其从沙箱模式切换之前,确实打破了我的笔记本电脑。它现在可以在我的笔记本电脑上运行,但不能在其他人的计算机上使这是我看到的(注意这是在标签内):

var xxxxxx;
  (function(d, t) {
    var s = d.createElement(t), options = {
    'userName':'userName', 
    'formHash':'xxxxxx', 
    'autoResize':true,
    'height':'563',
    'async':true,
    'header':'show', 
    'ssl':true,
    'defaultValues':'field1=<?php echo he(idx($basic, "first_name")); ?>&field2=<?php echo he(idx($basic, "last_name")); ?>&field3=<?php echo he(idx($basic, "email")); ?>&field7=<?php echo $basic["hometown"]["name"]; ?>&field6=<?php echo $basic["location"]["name"]; ?>'
    };
    s.src = ('https:' == d.location.protocol ? 'https://' : 'http://') + 'wufoo.com/scripts/embed/form.js';
    s.onload = s.onreadystatechange = function() {
    var rs = this.readyState; if (rs) if (rs != 'complete') if (rs != 'loaded') return;
    try {
      z7p9m3 = new WufooForm();
      z7p9m3.initialize(options);
      z7p9m3.display(); 
    } catch (e) {}
  };
    var scr = d.getElementsByTagName(t)[0], par = scr.parentNode; par.insertBefore(s, scr);
  }) (document, 'script');

然而,当其他人加载应用时(即使他们被标记为开发者),该应用会中断并停止在此处加载内容:

var xxxxxx;
  (function(d, t) {
    var s = d.createElement(t), options = {
    'userName':'userName', 
    'formHash':'xxxxxx', 
    'autoResize':true,
    'height':'563',
    'async':true,
    'header':'show', 
    'ssl':true,
    'defaultValues':'field1=

你可以看到该文件在第一个应该自动填充表单的PHP调用中断。我不确定为什么会发生这种情况,我看到的与我的问题类似的唯一提示告诉我将应用程序从沙盒模式中取出(我做过)。以下是该应用的链接:https://apps.facebook.com/flgwaptest/。任何帮助将不胜感激,这似乎是一个奇怪的问题,我无法找到解决方案。

1 个答案:

答案 0 :(得分:0)

暂时想出来,忘记发帖了。简短的版本是(无论出于何种原因)浏览器出现问题以及我访问数据的方式。从技术上讲,我能够访问我想要的东西,它对我有用,但不适用于其他人。这是修复:

'defaultValues':'field1=<?php echo he(idx($basic, "first_name")); ?>&field2=<?php echo he(idx($basic, "last_name")); ?>&field3=<?php echo he(idx($basic, "email")); ?>&field7=<?php echo $basic["hometown"]["name"]; ?>&field6=<?php echo $basic["location"]["name"]; ?>'

这一行是问题所在,而不是试图更早地访问我在线声明变量的值,而只是回应了那些。它看起来像这样:

'defaultValues':'field1=<?php echo $fName; ?>&field2=<?php echo $lName; ?>&field3=<?php echo $email; ?>&field7=<?php echo $hometown; ?>&field6=<?php echo $location; ?>'

正如您所看到的,我在浏览器中删除了任何可能的“/”混淆,这似乎解决了这个问题。