2012-04-24 62 views
1

我有以下的代码工作完全在浏览器,但不是在iPad,我怀疑iPhone太虽然没有测试它:iPad会话错误?

require '/home/****/php_/lib/fb_libs/facebook.php'; 
require '/home/****/php_/lib/fb_libs/fbconfig.php'; 

session_start(); 

$facebook = $_SESSION['facebook']; 
$userdata = $_SESSION['userdata']; 

echo "Your email address is ".$userdata['email']."<br /><br />"; 

echo "Your name is ".$userdata['name']."<br /><br />"; 

echo "Your Facebook ID is ".$userdata['id']."<br /><br />"; die; 

而iPad根本不会返回变量$userdata[*]

有什么不同,我应该知道RE的iPad?我正在用这个把我的头发撕掉。

这是在浏览器上的结果:

Your email address is [email protected] 

Your name is Darren Sweeney 

Your Facebook ID is 123456789 

在iPad上

Your email address is 

Your name is 

Your Facebook ID is 
+0

以及你如何设置$ _SESSION [“用户数据”。会话是否有效? – 2012-04-24 18:41:33

+0

@Topener修正了问题,这是错误的,因为我正在测试的东西,但它现在正确的顺序。 – 2012-04-24 18:43:25

+0

所以问题仍然存在? – 2012-04-24 18:44:08

回答

1

session_start()应该使用任何会话变量之前定义。因此,将其放置在顶部:

session_start(); 
$facebook = $_SESSION['facebook']; 
$userdata = $_SESSION['userdata']; 

这是造成问题给你。

+0

不,刚刚修改的问题,与你说的相同 – 2012-04-24 18:44:06

3

确保您的iPad的Safari配置为接受所有Cookie。

您的应用程序位于Facebook的iFrame中,这反过来又使您的应用程序托管为第三方页面。所以,您必须在浏览器上启用第三方Cookie。
我有这个问题,以及创建一个Facebook应用程序的问题。
希望这可以帮助你。