我正在使用PHP sdk for Facebook。
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
}
在这段代码之后,我的页面上有一个链接指向带有查询字符串的同一页面。
类似于<a href="/index.php?step=2">Continue</a>
但是当我点击此链接时,$ user为“0”。这只发生在Safari和IE浏览器中。当我检查app设置的cookie在这些浏览器中不存在时。
有什么想法吗?
答案 0 :(得分:2)
由于用户ID不会改变,如果你通过GET发送它会有问题吗?
<a href="/index.php?step=2&id=<? echo $user ?>">Continue</a>
,然后在脚本的顶部,以及按照您的方式获取$ user:
if($_GET['step'] == 2){
$user = $_GET['id'];
}
如果你真的需要保留cookie,你可以在脚本的顶部添加它,它必须是第一行。
header('P3P: CP="CAO COR CURa ADMa DEVa OUR IND ONL COM DEM PRE"');
您也可以查看此问题
Iframe Facebook application and cookies [Internet Explorer]
Session Lost on IE Facebook App iFrame
与标题解决方案有关。