【问题标题】:Issues with sessions on Facebook PHP SDKFacebook PHP SDK 上的会话问题
【发布时间】:2013-03-23 19:16:48
【问题描述】:

我想在我的网站按钮中制作onclick 将在用户facebook 墙上发布一条消息。 我从我网站中的 php 页面调用 AJAX 脚本,将 _POST 中的消息发送到带有 facebook 代码的 php 文件。

我在运行我的 php 文件时收到此错误:

警告:session_start() [function.session-start]:无法发送 会话缓存限制器 - 标头已发送(输出开始于 /home/user/public_html/fb/index.php:1) 在 /home/user/public_html/fb/facebook.php 在第 49 行

我的 PHP 是这样的:

<?php
include('../ilink.php'); //mysqli connection

$fb_message=$_POST['fb_message'];
$fb_description=$_POST['fb_description'];
$fb_picture=$_POST['fb_picture'];


require 'facebook.php';

// Create our Application instance.
$facebook = new Facebook(array(
    'appId'  => '--appid--',
    'secret' => '--secret--',
    'cookie' => true
));

    $user  = $facebook->getUser(); 

    if ($user) {
      try {
        // Proceed knowing you have a logged in user who's authenticated.
        $user_profile = $facebook->api('/me');
      } catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
      }
    }

    // Login or logout url will be needed depending on current user state.
    if ($user) {
      $logoutUrl = $facebook->getLogoutUrl();
    } else {
      $loginUrl = $facebook->getLoginUrl();
    }

    $attachment = array('message' => $fb_message,
            'name' => 'text',
            'caption' => 'text',
            'link' => 'http://www.domain.com',
            'description' => $fb_description,
            'picture' => $fb_picture,
            'actions' => array(array('name'=>'text', 
                              'link' => 'http://www.domain.com'),)
            );

    $result = $facebook->api('/me/feed/','post',$attachment);
?>

我的 ajax 脚本:

    function fb_post(fb_message,fb_description,fb_picture,redirect){
        var xmlhttp;
        if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
        }
        else{// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function(){
          if (xmlhttp.readyState==4 && xmlhttp.status==200){

                document.location.href =redirect;               
          }
        }

        var q="fb_message="+fb_message+"&fb_description="+fb_description+"&fb_picture="+fb_picture;
        xmlhttp.open("POST","/fb/index.php",true);
        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xmlhttp.send(q);
}

为什么会出现错误?

【问题讨论】:

  • 当正文部分发送需要再次发送头部部分时会出现此错误。请从所有文件中删除页面顶部的所有空格

标签: php ajax facebook session facebook-php-sdk


【解决方案1】:

如果这是您的所有代码,它看起来像是在会话实例之前发送的包含文件中的某些内容。

【讨论】:

  • 我网站上的每个页面都有会话(用于用户登录)。并且在 facebook.php 上有会话。也许我需要以某种方式破坏会话?还有 Rohit Kumar - 我没有空格。
  • 你在每个页面上获得会话是什么意思,你不必在每个页面上启动会话,显示更多代码。
  • 我在每个页面中都包含(username.php),用于知道现在登录的用户是谁,该页面以这些行开头:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-21
  • 2011-06-13
  • 2014-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多