我正在建立一个Facebook调查,其中每个随机选择的朋友有多个问题。
我这样做的方法是显示一个有一个朋友和他/她的问题的php页面
并且当用户提交时,它应该发布到相同的php页面但是包含左边的数组以显示朋友ID。
这是我有这样的架构和相关代码:
home.php - 登录facebook
framing.php - 管理调查
$idArray = friends id array...
$pageToReturnTo = $_SERVER['PHP_SELF'];
$q_html = questionnaire($idArray,$pageToReturnTo);
q.php - 包含从db获取当前调查并将其操作为html的函数
function questionnaire($idArray,$pageToReturnTo){
...
$idArray_imploded = implode(",",$idArray)
$html .= "<form method='POST' action='".$pageToReturnTo."}?idArray=".$idArray_imploded."'>
....
return $html;
}
问题是facebook会返回如下错误:
Received HTTP error code 404 while loading http://www.mydomain.com/%7D?idArray=757010120%...
答案 0 :(得分:2)
您似乎在 }
之前的$ html中有一个额外的 ?idArray=
。那是你在Facebook返回的错误中看到的%7D
。
$html .= "<form method='POST' action='".$pageToReturnTo."?idArray=".$idArray_imploded."'>
此外,您应该检查以确保$_SERVER['PHP_SELF']
实际包含值。看起来它可能在您的服务器上是空的。还有一些其他方法可以获取当前运行脚本的名称。对于测试,您只需将$_SERVER['PHP_SELF']
替换为php脚本的硬编码名称,只是为了确保您的脚本实际正常工作。
// $pageToReturnTo = $_SERVER['PHP_SELF'];
$pageToReturnTo = 'myscript.php';