Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook PHP sdk不使用iframe链接设置cookie_Facebook_Facebook Graph Api_Facebook Apps - Fatal编程技术网

Facebook PHP sdk不使用iframe链接设置cookie

Facebook PHP sdk不使用iframe链接设置cookie,facebook,facebook-graph-api,facebook-apps,Facebook,Facebook Graph Api,Facebook Apps,我正在为Facebook使用PHPSDK require_once 'facebook-sdk/facebook.php'; session_start(); $facebook = new Facebook(array( 'appId' => 'app_id', 'secret' => 'app_secret', 'cookie' => true, )); $facebook->getUser(); if($user){ // do

我正在为Facebook使用PHPSDK

require_once 'facebook-sdk/facebook.php';

session_start();

$facebook = new Facebook(array(
    'appId' => 'app_id',
    'secret' => 'app_secret',
    'cookie' => true,
));

$facebook->getUser();

if($user){
   // do stuff
}else{
   //redirect to app login
}
在这段代码之后,我的页面上有一个链接,它用一个查询字符串指向同一页面

类似于

但当我点击这个链接时,$用户是“0”。这种情况只发生在Safari和IE上。当我检查应用程序设置的cookie时,这些浏览器中不存在


有什么想法吗?

因为用户id不会改变,所以如果通过GET发送,会有问题吗

<a href="/index.php?step=2&id=<? echo $user ?>">Continue</a>
如果您真的需要保留cookies,您可以将其添加到脚本的顶部,它必须是第一行

header('P3P: CP="CAO COR CURa ADMa DEVa OUR IND ONL COM DEM PRE"');
另外,您可能需要检查这些问题


与标题解决方案相关。

如何获取用户?你在FB iframe吗?如果是这样,safari将不会设置所需的cookie。看见对于ie,发送正确的P3P标题。这是facebook上的画布应用程序。是的,这是FB iframe。我很难理解为什么这会被否决。请解释为什么您的downvotemy解决方案如下。。不要轻信这个问题救世主。。facebook的新PHP sdk没有这一行。。它过去是在他们的旧结构中。。可怜的IE用户都没能使用我的新应用。
header('P3P: CP="CAO COR CURa ADMa DEVa OUR IND ONL COM DEM PRE"');