2013-11-01 40 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和無關重定向,我真的很感激你的幫助:) –