0

我正在尝试开发 Facebook 应用程序,但遇到了会话变量问题。我通过设置会话变量的 ajax 调用脚本。后来,我通过 ajax 调用了一个脚本,该脚本检索了先前设置的会话变量,但该变量为空。

在 index.php 中加载应用程序时调用的第一个脚本。我在顶部有以下内容

<?php
session_start();
//Get PHP SDK
require_once 'facebook-php-sdk/src/facebook.php';
// Create our Application instance.
$facebook = new Facebook( array('appId' => 'xxxxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'cookie' => true, ));
$signed_request = $facebook -> getSignedRequest();
$like_status = $signed_request["page"]["liked"];
?>

通过 ajax 调用的第一个脚本设置会话变量,如下所示:

$numbers = range(1, 52);
shuffle($numbers);
$_SESSION['cards'] = serialize($numbers);

第二个脚本(大约 10 秒后调用,所以我认为这不会是种族问题)如下所示:

$numbers = unserialize($_SESSION['cards']);

即使没有其他脚本清空 $_SESSION['cards'],变量 $numbers 也是空的。

这应该工作还是我做错了?我对ajax很陌生。我读过 iframe 中的 ajax 调用可能会出现问题,这是 facebook 应用程序的设置方式,但我还没有找到解决方案。

有人知道怎么修这个东西吗?

4

1 回答 1

2

您必须session_start()同时调用index.phpajax 脚本来共享同一个会话

于 2012-11-26T20:16:16.340 回答