Объект сеанса не возвращает переменную обратно - PullRequest
0 голосов
/ 13 марта 2012

Здравствуйте, я новичок в разработке приложений для Facebook и работаю над своим первым приложением. Мое приложение выглядит так, что первая страница - это целевая страница, которая проверяет, понравилась ли пользователю страница или нет, если пользователю уже понравилась страница, она перенаправляет пользователя на следующую страницу.

Поскольку объект $ signature_request извлекается на первой целевой странице, но будет использоваться во всем приложении, поэтому я хочу передать эту переменную на следующую страницу через объект $ _SESSION [], но не могу получить его на другой странице.

<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    …
</head>
<body>
<?php
            $app_id = "160336875618730";
            $app_secret = "b14ac6d2b7frewdb259599b06983e881";
            $canvas_page = "http://apps.facebook.com/myapp";
            $auth_url = "https://www.facebook.com/dialog/oauth?client_id=" . $app_id . "&redirect_uri=" . $canvas_page . "&scope=email,read_stream,publish_stream,user_photos";

            $signed_request = $_REQUEST["signed_request"];
            list($encoded_sig, $payload) = explode('.', $signed_request, 2);
            $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
            $_SESSION['signed_request']=$data;

… …..

И на page2.php, пока я пытаюсь получить его так:

<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD H   ...
... ... 
<body>
<?php
$data = $_SESSION['signed_request'];

            //User Info. Variables:
            try {
                $userId = $data["user_id"];
                echo "ID:".$userId;
                $userName =json_decode(file_get_contents('http://graph.facebook.com/' . $userId)) -> name;
…

Она не возвращает мне переменную.

пожалуйста, помогите мне с этим

1 Ответ

0 голосов
/ 14 марта 2012

Если вы делаете перенаправление, вам нужно вызвать session_write_close () перед выполнением перенаправления.Это заставляет PHP записывать данные сеанса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...