[英]Heroku Facebook App Breaking on First PHP Call
我的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/ 。 任何幫助將不勝感激,這似乎是一個奇怪的問題,我一直無法找到解決方案。
回想了一下,忘記了發布。 簡短的版本是(無論出於何種原因)瀏覽器在報價和我訪問數據的方式方面存在問題。 從技術上講,我能夠訪問我嘗試的內容,它將對我有效,但對其他人無效。 解決方法是:
'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; ?>'
如您所見,我消除了瀏覽器方面的所有可能的“ /”混淆,這似乎可以解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.