-1

我在我的 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

4

1 回答 1

0

当您执行 session_start 时,实际上可能会发送该错误,因为已经构建了一些非标题元素,因此页面的标题已经发送。意思是,您需要在之前的脚本中显示任何文本之前执行此操作(例如,如果您将其包含在某个地方的中间,只需在之前调用的脚本中执行此操作)。

既然你说这是wordpress,你只是把它放在某个地方,你可能想把第一部分分成项目的另一部分(在发送标题之前),然后在这个地方使用回声。

也可能是(我注意到您正在使用关闭?>),如果您只编写 PHP,您可能希望避免在文件末尾使用 ?>,因为之后的任何空行都可能发送到输出。

于 2012-09-16T11:52:46.053 回答