0

我正在使用 Facebook Php SDK v3.22,我有 JavaScript 为我设置了一个用 Php 读取的 cookie

出于某种原因,当我使用这样的 if 语句时:

if($_COOKIE['anything'] == 'some_data'){
//do something
}

我的画布页面重定向到空白页面,注销时未发现错误

我在我的页面信息中看到框架画布页面中没有 cookie,但我有点困惑,因为我正在使用服务器端 Php 来读取 cookie,以及这如何导致 Facebook 重定向到空白页面。使用 if cookie 语句,这是魔法!

我正在使用 JavaScript 设置我的 cookie,如下所示:

<script language="JavaScript" type="text/javascript">
<!--
if (self != top) {;
    var onsite = 'true'; document.cookie = 'domainname.com' + "=" + onsite;
}else{
    var onsite = 'false'; document.cookie = 'domainname.com' + "=" + onsite;
}
-->
</script>
4

1 回答 1

0

在您的页面上使用以下 javascript:

<script type="text/javascript">

// Set cookie function
function setCookie(c_name,value,exdays) {
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
    document.cookie=c_name + "=" + c_value;
}

// Set the cookie
var onsite = 'false',
    domain = 'domainname.com';
if (self != top) {
    onsite = 'true';
}
setCookie(domain, onsite);

</script>

您的 PHP 脚本将如下所示:

<?php

// Test cookie
$domain = 'domainname.com';
if (isset($_COOKIE[$domain])) {
    if ($_COOKIE[$domain] == 'true') {
        // domainname.com is equal to 'true'
    } else {
        // domainname.com is NOT equal to 'true'
    }
} else {
    // cookie is not set yet
}

?>

*请注意,如果您在设置 cookie 之前尝试读取它,它不会真正起作用。

于 2013-11-01T09:12:36.833 回答