尝试在Facebook应用中提交表单时出现HTTP 404错误

问题描述:

我正在构建Facebook调查,其中每个随机选定的朋友有多个问题。尝试在Facebook应用中提交表单时出现HTTP 404错误

我这样做的方法是显示一个PHP页面与一个朋友和他/她的问题

,当用户提交,就应该张贴到相同的PHP网页,但与数组包含左边是显示朋友ID。

这是我有这样的架构和相关代码:

home.php - 登录到Facebook的

framing.php - 管理调查

$idArray = friends id array... 
$pageToReturnTo = $_SERVER['PHP_SELF']; 
$q_html = questionnaire($idArray,$pageToReturnTo); 

Q值。 PHP的 - 包含一个函数,从数据库中获取当前调查并将其操作为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%... 
  1. 虽然我询问有关framing.php的PHP_SELF,我没有看到它在生成的网址,有人可以解释为什么?
  2. 我该如何解决这个问题?如果不是,你可以请建议一个替代?

非常感谢!

看起来你以前?idArray=权在你的$ HTML额外}。这是%7D,你在从Facebook返回的错误中看到。

$html .= "<form method='POST' action='".$pageToReturnTo."?idArray=".$idArray_imploded."'> 

此外,您应该检查以确保$_SERVER['PHP_SELF']实际上包含一个值。它看起来可能在你的服务器上是空的。还有其他一些方法可以获取当前正在运行的脚本的名称。为了测试,您可以用php脚本的硬编码名称替换$_SERVER['PHP_SELF'],以确保您的脚本实际上正在工作。

// $pageToReturnTo = $_SERVER['PHP_SELF']; 
$pageToReturnTo = 'myscript.php'; 
+0

谢谢:)我的坏... – Yoni 2011-03-01 19:18:27