0

我有一个多部分的过程

第 1 步:在 page.php 上,我调用了一个 facebook 弹出身份验证窗口,其中 URI 转到page2.php

https://facebook.com/dialog/oauth?client_id=ID&redirect_uri=http://domain.com/page2.php?-Your+Special+Token+1170-&type=user_agent&fbconnect=1&scope=publish_stream

page2.php我想通过从 url 读取它并将其存储为 cookie 来处理这个令牌

<?php

  session_start(); 

 if ( empty($tkn) ) { ?>
<script>
(function () {
  try {
    var q = location.href.split('#');
    var a = q[1];
    var q2 = a.split('=');
    var a2 = q2[1];
    var q3 = a2.split('&');
    var a3 = q3[0];
    setTimeout(function () {
        top.location.replace('http://domain.com/cookie.php?tkn=' + a3);
    }, 200);
} catch (e) {
    top.location.replace('http://domain.com/cookie.php?retry=1&tk=broken_' + encodeURI(e.message));
}
})()
</script><? } else {



    print $_GET['tkn'];


}


  $_SESSION['tkn'] = $tkn;

$tkn = $_POST["tkn"];

if(isset($tkn)) {

    setcookie("tkn", $tkn);
    echo "success";
}

?>

page.php检测到 cookie 并回显令牌 $tkn 并重新加载页面

<?php
        session_start();

    ?>

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
 $.post('page2.php',{tkn: tkn}, function(data){ 
    if(data=='success'){
        location.reload(true)
    }
 });
</script>

<?php echo $tkn; ?>

问题是我无法让这些工作。弹出窗口进入无限错误循环,没有任何内容被刷新或回显。

4

0 回答 0