Потеря информации о размещенной строковой переменной php после выполнения top.location.href - PullRequest
0 голосов
/ 16 января 2012

Следующий код включает аутентификацию пользователей приложения Facebook с помощью скрипта, который запускается событием формы php.Я отправляю строку через форму HTML со следующим кодом:

<html>
<body>
<form name="form" enctype="multipart/form-data" action="test.php" method="post">
    <input name="message" type="text" value=""><br/><br/>
    <input type="submit" value="Upload"/><br/>
</form>
</body>
</html>

Код для test.php:

<html>
    <head xmlns:testapp="https://apps.facebook.com/testapp/ns#">
        <title>World Centric</title>
    </head>
    <body>
    <?php
    $app_id = "191622610935428";
    $my_url = "http://www.thepropagator.com/facebook/testapp";
    $string1 = $_POST["message"];
    session_start();
    $_SESSION['string']=$string1;
    echo $string1;
    $code = $_REQUEST["code"];

    if(empty($code)) 
    {
        $dialog_url = "https://www.facebook.com/dialog/oauth?client_id="
            . $app_id . "&redirect_uri=" . urlencode($my_url) 
            . "&scope=email,publish_actions";
        echo("<script>top.location.href='" . $dialog_url . "'</script>");
        echo "string1".$string1;
    }
   $string1 = $_SESSION['string'];
    echo $string1;
    ?>
    </body>
</html>

При первоначальном выполнении text.php выводится строкаотправлено из формы

$string1 = $_POST["message"];

Однако после строки:

echo("<script>top.location.href='" . $dialog_url . "'</script>");

Выполняется переменная $ string1 пустая.Мне нужно сохранить эту информацию после выполнения вышеуказанной строки.Кто-нибудь может подсказать, как мне это сделать?

1 Ответ

1 голос
/ 16 января 2012

Когда вы изменяете href в Javascript, это приводит к загрузке нового URL через GET. если вам необходимо сохранить подобные переменные, вам придется передать их в строке запроса нового URL-адреса или сохранить их в другом месте, например в файле cookie или в сеансе на стороне сервера.

...