0

が存在する場合、ユーザーをhttps://www.example.com/XYZ/user_idにリダイレクトするという考え方です。そうでない場合は、最初に電話してください。問題は、取得できないことです。したがって、スクリプトは継続して CSRF エラーが発生します (複数の State 値を取得します)。ただし、問題は非常にランダムです。getLoginUrluser_iduser_idgetLoginUrl

何か案は?

require_once('../src/facebook.php');
require_once ('../src/fbconfig.php');

$user_id = $facebook->getUser();
if (!$user_id) {
    $loginUrl   = $facebook->getLoginUrl(array(
      'scope'         => 'publish_stream, user_likes')
    );
    echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
} else {
    echo "<script>top.location.href = 'https://www.example.com/XYZ/'</script>";
    exit;
}
4

1 に答える 1

0

試す:

print_r($user_id);

$user_id を設定した後、これらの「ランダムな」ケースのいずれかを見つけて、それが何を返すかを観察するまで試行を続けます。その後、if/then ステートメントに追加の条件を追加して、予期しないリターンを処理するか、おそらく再試行を実行する必要があります (もちろん、競合状態を防ぐために制限付きで)。

また、サーバーとマジック クォートの設定によっては、最初のケースのリダイレクト コードを次のように変更することをお勧めします。

echo "<script type='text/javascript'>top.location.href = '" . $loginUrl . "';</script>";

それが何か関係があるとは思えませんし、URL に表示されることもないと思いますが、アプリで何が起こっているのかわかりにくく、「ランダム」であることは常に苦痛です。これらの「ランダムな」ケースで IS が何を返すかを試してみてください。そうすれば、それを処理する方法がわかります。

于 2012-07-15T17:10:53.807 に答える