某些浏览器中FB应用程序上的链接和提交按钮的问题

时间:2012-06-05 22:03:15

标签: php facebook internet-explorer cross-browser

我正在用php开发一个FB应用程序。它适用于大多数浏览器。

然而,当我按下图像链接甚至是按钮时出现问题,会发生的情况是整个页面重新加载并保持在同一页面中。因此,如果我在index.php中并且为next.php设置了链接,则页面将重新加载并继续在index.php中。这种情况发生在IE 9中,奇怪的是发生在我的朋友的firefox中,它使用相同的版本,但在Mac上(我在另一台PC上测试并在firefox,chrome和opera上运行良好)。

这个问题发生在safari中,但我能够通过更改绝对URL的所有相对URL来解决它,但问题仍然存在于IE上,它有时出现在Firefox上...

我已经在http://validator.w3.org/中找到了代码。 我正在使用Win 7。

任何帮助或建议可能会受到欢迎,此时我很无能为力。

以下是代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
session_start();

$_SESSION = array();

require_once "configuration/config.php";

$friends = $facebook->api('me/friends');

if(count($friends['data']) < 20)
    header('Location: https://tratamentoquedadecabelo.com/diogo/notEnough.php');

$query_user_participant = "SELECT id FROM user WHERE id = $fb_user_id AND participant = 1";

$query_minimum_answers = "SELECT * FROM survey_answers WHERE User_has_friend_User_id = $fb_user_id";

$res_query_minimum_answers = mysql_query($query_minimum_answers);

$res_query_user_participant = mysql_query($query_user_participant);

if($res_query_user_participant == true && mysql_num_rows($res_query_minimum_answers) > 19)
{
    //user already did the study
    header('Location: https://tratamentoquedadecabelo.com/diogo/studyAlreadyDone.php');
}

?>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
     <head>
        <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
        <title></title>
        <link rel="stylesheet" type="text/css" href="css/style.css" />
    </head>
    <body>
        <div id="fb-root"></div>
        <script src="https://connect.facebook.net/en_US/all.js"></script>
        <script type="text/javascript">
            FB.init({
            appId : '********************',
            status : true, // check login status
            cookie : true, // enable cookies to allow the server to access the session
            xfbml : true // parse XFBML
            });
        </script>
     <script type="text/javascript">
        FB.Canvas.setSize({ width: 800, height: 715 });
    </script>
        <br/>
        <h2 id="lang_title">Choose language</h2>
            <div id="british">
                <a href="https://tratamentoquedadecabelo.com/diogo/startPage.php?language=british"> 
                    <img class="effect" src="https://tratamentoquedadecabelo.com/diogo/images/british.jpg" width="200" height="150" alt="british_flag" /></a>
            </div>
            <div id="portuguese">
                <a href="https://tratamentoquedadecabelo.com/diogo/startPage.php?language=portuguese"> 
                    <img class="effect" src="https://tratamentoquedadecabelo.com/diogo/images/portuguese.jpg" width="200" height="150" alt="portuguese_flag" /></a>
             </div>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

通过在文件开头写下这行代码来解决Internet Explorer的问题:

header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

问题是默认情况下IE不允许第三方cookie。有关此here的更多信息。 因此,如果用户手动禁用第三方cookie,则此类问题将持续存在。