Facebook应用程序不显示任何内容(PHP错误)
我相信这是一个PHP错误,但我不是100%确定。基本上,我正在尝试为我的网络杂志构建一个应用程序,并且已经完成了静态内容,效果很好。然后我转换成PHP,并尝试包含PHP Facebook SDK。我使用了正确的应用程序ID和密码 下面是我在index.php文件开头使用的代码Facebook应用程序不显示任何内容(PHP错误),php,facebook,Php,Facebook,我相信这是一个PHP错误,但我不是100%确定。基本上,我正在尝试为我的网络杂志构建一个应用程序,并且已经完成了静态内容,效果很好。然后我转换成PHP,并尝试包含PHP Facebook SDK。我使用了正确的应用程序ID和密码 下面是我在index.php文件开头使用的代码 <?php require 'fb/facebook.php'; $fbconfig['appUrl'] = "http://apps.facebook.com/dailydischord/";
<?php
require 'fb/facebook.php';
$fbconfig['appUrl'] = "http://apps.facebook.com/dailydischord/";
// create instance of the Facebook application
$facebook = new Facebook(array(
'appId' => '<appid>',
'secret' => '<appsecret>',
'cookies' => 'true',
));
// get the id of the user using the app
$user = $facebook->getUser();
if($user) {
try {
//if user is authentic, proceed
$user_profile = $facebook->api('/me');
}
catch(FacebookApiException $e) {
error_log($e);
$user = null;
}
}
// if user is authentic, generate logout URL
if($user) {
$logoutUrl = $facebook->getLogoutUrl();
?>
<!DOCTYPE HTML>
<html>....
应用程序的URL位于此处:
任何帮助都将不胜感激。如果我遗漏了任何内容,请询问,我将尝试提供更多信息。您正在尝试发送(会话)标题,而这些标题已经发送
可能在
之前有一个换行符,因为您的输出是完全空白的,这意味着语法错误或失败的require
。您有权访问Web服务器错误日志吗?它可能会告诉你确切的问题。要快速检查,您可以将require
更改为include
,查看是否有输出(即使只是屏幕上的错误消息)。您正在尝试输出标题,在本例中是会话。标题是浏览器处理的第一件事。当您想在输出HTML后更改此设置时,它将显示此错误
最好的方法是在输出数据后不要更改标题,也可以使用以下行并将其放在代码顶部:
ob_start();
请注意,使用它不是一个正确的修复方法,但它会打开输出缓冲(允许您在已经放置HTML代码时更改标题)
以下选项是可选的,但是正确的,使用ob_start()函数,在输出结束时,必须完全关闭缓冲并输出缓冲区中的内容
ob_end_flush();
要了解更多信息,请转到该页面。我自己设法解决了这个问题。似乎最后一段代码就是问题所在(“else”语句)。这是我使用的代码
<?php
} else {
$loginUrl = $facebook->getLoginUrl(array('redirect_uri' => $fbconfig['appUrl']));
print "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
}
?>
不幸的是,所有这些都不起作用。当你说我在输出数据后更改标题时,我不明白你的意思。没有显示任何错误!我无法访问我的服务器错误日志。在您输出任何内容之前,它似乎确实发生了致命的PHP错误。尝试添加回显“步骤1”代码>就在require
行之前,并有一个回显“步骤2”代码>紧跟在它之后,然后查看得到的输出。如果您同时看到这两个输出,请尝试添加其他输出以进一步缩小范围。
ob_end_flush();
<?php
} else {
$loginUrl = $facebook->getLoginUrl(array('redirect_uri' => $fbconfig['appUrl']));
print "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
}
?>