繁体   English   中英

如果$ _COOKIE语句,则来自PHP的Facebook空白画布页面

[英]Facebook blank canvas page from php if $_COOKIE statement

我正在使用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>

在页面上使用以下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之前先读取它,它将无法正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM