У меня есть приложение iframe на Facebook.Как только авторизация приложения подтверждена, я получаю некоторые данные из подписанного запроса и помещаю его в сеанс:
<?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 мне нужно использовать ранее сохраненное значение сеанса, но сеанс пуст.
<?php
session_start();
echo $_SESSION['fb_id'];
?>
Очевидно,эти фрагменты кода упрощены, но кто-нибудь может мне это объяснить?У меня такое чувство, что я делаю что-то глупое, но это был долгий день.