0

我正在为 Facebook 使用 PHP sdk。

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”。这只发生在 şn Safari 和 IE 中。当我检查这些浏览器中不存在应用程序设置的 cookie 时。

有任何想法吗?

4

1 回答 1

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 应用程序和 cookie [Internet Explorer]

IE Facebook App iFrame 会话丢失

这与标题解决方案有关。

于 2012-12-16T01:52:59.677 回答