Работа с ФОРМОЙ - PullRequest
       14

Работа с ФОРМОЙ

0 голосов
/ 07 октября 2011

Я новичок, который пытается создать приложение для Facebook.Вот код:

<?php
 $app_id = "xxx";
 $canvas_page = "https://apps.facebook.com/xxx/";

 $auth_url = "https://www.facebook.com/dialog/oauth?client_id=" 
        . $app_id . "&redirect_uri=" . urlencode($canvas_page) . "&scope=user_birthday";

 $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>");
 } else {
        echo ("<p>Welcome. Your Facebook ID is " . $data["user_id"] . "</p>");

        if (isset($_POST['salary'])) {
            echo "<p>You wrote salary: " . $_POST['salary'] . "</p>";
        }
        else {
            echo "<p>You didn't wrote salary.</p>";
        };

        echo "<form method='post' action='$canvas_page'>";
        echo "<input type='text' name='salary'>";
        echo "<input type='submit'>";
        echo "</form>";
 }
?>

Почему в результате всегда отображается «Вы не написали зарплату».

1 Ответ

0 голосов
/ 07 октября 2011

Этот код действительно работает на моем холсте, поэтому проблема должна быть в URL-адресе аутентификации.Вкратце: если это условие:

if (empty($data["user_id"]))

станет верным, то у вас будет перенаправление пользователя на URL-адрес авторизации, а затем обратно на страницу холста.

Вы можете проверить, происходит ли это, посмотрев URL: если к концу URL прикреплен код = что-то , это означает, что пользователь был перенаправлен.потерять время _POST контента.

Вы можете на всякий случай иметь print_r или var_dump из $ data, чтобы быть уверенным, что оно действительно заполнено чем-то.

Bye =)

РЕДАКТИРОВАТЬ 14.10.11:На самом деле ваш код верен, в этом нет ничего плохого, поэтому пример кода - ваш собственный код

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