2012-01-16 4 views
0

次のコードでは、PHPフォームイベントによってトリガーされるスクリプトでFacebookアプリケーションユーザーを認証します。私は、次のコードでHTMLフォームを使用して文字列を掲示しています:top.location.hrefを実行した後にphpが文字列変数の情報を投稿した

<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

Javascriptでhrefのようにhrefを変更すると、新しいURLが 'GET'を介して読み込まれます。そのような変数を保持する必要がある場合は、それらを新しいURLのクエリ文字列に渡すか、Cookieやサーバーサイドのセッションなど、別の場所に格納する必要があります。

+0

ご意見ありがとうございます。私はあなたが正しいと信じていますが、私は解決策を実装するのに苦労しています。上記の元のブロックでコードの変更を編集しましたが、情報を失うのと同じ問題がまだ発生しています。私が間違っていることについて何か提案はありますか? –

関連する問題