2013-11-01 46 views
0

我使用Facebook的PHP的SDK v3.22这是我的JavaScript已经把我所读的PHP

出于某种原因,一个cookie,当我if语句像使用所以:

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

我的画布页面重定向到一个空白页,没有赶上,退出时

我在页面上的信息看到,有中框画布页面没有饼干错误,但我有点困惑因为我使用服务器端PHP来读取cookie以及这可能导致Face本书重定向到一个空白页面,当我使用一个如果cookie的声明,这是巫术!

我设置我的JavaScript饼干,像这样:

<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> 
+0

'print_r($ _ COOKIE)的输出是什么;'(在您的cookie设置后)? – Latheesan

+0

这是从它的设置预期的输出!它似乎并不重要,我设置cookie数据,这只发生在我尝试读取cookie中的cookie如果语句 –

+0

你可以发布'var_dump'你的问题上的'$ _COOKIE'。我怀疑cookie的值有一些前导/尾随换行符或其他一些不可见的字符。 – Latheesan

回答

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之前尝试读取cookie,它不会真正起作用。

+0

问题是,如果我在php !!!中的任何地方放置了'if cookie statement',但是如果我删除了Cookie'if statement',那么Facebook在注销时会重定向到空白页面,我的注销将重定向到正确的页面,这是不会受到我的PHP'如果声明'在评估cookie后做的事情的影响 –

+0

我认为你阅读$ _COOKIE的权利,因为当我删除$ _COOKIE ['domainname.com'] ='空白'时;从上面的'如果statemant'Facebook重定向到正确的页面,但为什么Facebook做这件事仍然存在,它是一个服务器端Php和无关重定向,我真的很感激你的帮助:) –