我在wordpress网站上使用以下php代码
<?php
session_start();
require 'src/facebook.php';
include 'config.php';
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret
));
// Get User ID
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
echo "loggedin";
}
else
{
echo "not loggedin";
}
?>
但即使我对我的应用进行身份验证,我也会继续未登录状态。 以上代码在普通应用程序上工作正常,但在我的wordpress网站上,我收到会话错误,标题已经发送。
请有人告诉其他方法来解决这个问题。
注意:我不想要javascript
答案 0 :(得分:0)
当你执行session_start时,实际上可能会发送该错误,因为已经构建了一些非标头元素,因此页面的标题已经发送。这意味着,您需要在以前的脚本中显示任何文本之前执行此操作(例如,如果您将其包含在某个地方的中间,只需在之前调用的脚本中执行此操作)。
既然你说这是wordpress而你只是把它放在某个地方,你可能想把第一部分分成项目的另一部分(在发送标题之前)然后在这个地方使用回声。
它也可能(我注意到你正在使用关闭?&gt;),如果你只是编写PHP,你可能想避免使用?&gt;在文件的末尾,因为之后的任何空行可能会被发送到输出。