gpt4 book ai didi

php - 在 Facebook AJAX 请求中维护 PHP session

转载 作者:行者123 更新时间:2023-12-01 06:06:32 26 4
gpt4 key购买 nike

我有一个 Facebook iframe 应用程序。一旦应用程序授权得到确认,我就会从签名的请求中获取一些数据并将其放入 session 中:

<?php
session_start();
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
if(empty($data["user_id"])) {
echo("<script> top.location.href='$auth_url'</script>");
exit;
}
$_SESSION['fb_id'] = $data['user_id'];
?>

很简单,对吧?现在用户可以与我的应用程序交互,最终的用户操作会触发 AJAX 请求。我为此使用 jQuery:

$.ajax({
type:'POST',
url:'include/handler.php',
data:'name=value',
success: function(msg) {
alert("Success: "+msg);
},
error: function(msg) {
alert("Fail: "+msg);
}
});

那么在 handler.php 中,我需要使用之前保存的 session 值,但 session 是空的。

<?php
session_start();
echo $_SESSION['fb_id'];
?>

显然这些代码片段是简化的,但是有人可以向我解释一下吗?我有一种感觉,我正在做一些愚蠢的事情,但这已经是漫长的一天了。

最佳答案

$.ajax({ ..., 缓存:假, ...});如果您使用 IE,这可能是问题所在,因为 IE 会缓存 ajax 请求。或者,如果 facebook graph api 请求与 ajax 请求同时运行,则可能会出现一些计时问题。

关于php - 在 Facebook AJAX 请求中维护 PHP session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5409988/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com