2012-09-07 55 views
1

我的代碼工作這塊但現在不是了......將用戶重定向到另一個頁面,當他喜歡一個頁面標籤

的index.php

<!doctype html> 
<?php 
require 'php-sdk/src/facebook.php'; 
$facebook = new Facebook(array(
      'appId' => '453976824647366', 
      'secret' => 'fe86f3b0b34b3ed6eXXXXXX', 
      'cookie' => true, 
     )); 

$signedRequest = $facebook->getSignedRequest(); 
$liked = $signedRequest["page"]["liked"]; 

     if ($liked) { 
      header('Location:youlike.php'); 
     } else { 
      echo "you don't like"; 
     } 
?> 
<html lang="en" xmlns:fb="https://www.facebook.com/2008/fbml"> 
    <head> 


    </head> 
    <body> 

    </body> 

</html> 

youlike.php

You like! 

它總是顯示「你不喜歡」,似乎永遠不會進入你like.php

一些幫助將不勝感激一次又來了!

THX

回答

3

試試這個:

<!doctype html> 
<?php 

if (!empty($_POST['signed_request'])) { 
    list($sig, $payload) = explode('.', $_POST['signed_request'], 2); 
    $decoded = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 
    $liked = $decoded["page"]["liked"]; 
} 

if ($liked) { 
    header('Location:youlike.php'); 
    exit; 
} 
else { 
     echo "you don't like"; 
} 
?> 
+0

感謝您的幫助 – Slrg

+0

@arn - 所以問題是,你沒有調用'exit()'? – Lix

+0

可能,至少它現在似乎工作!再次感謝你 – Slrg

1

因爲你是在一個iframe,你需要到最高幀進行重定向。

嘗試這個JavaScript -

top.location.href = "youlike.php"; 

用PHP,你可以簡單地迴應了這樣的代碼 -

echo '<script type="javascript">'; 
echo 'top.location.href = "'.$youlike.'";'; 
echo '</script>'; 
exit(); 

根據您的前/後如頁面的複雜性,你可能想只需在一個頁面上顯示所有內容,並只顯示用戶「喜歡」該頁面的某些部分。

if ($liked) { 
    // place like post page HTML here 
} else { 
    // place like pre page HTML here 
} 
+0

我想你第二個代碼...這是不是爲我工作實際:( 我只是把它代替頭('位置:youlike。 php'); – Slrg

+0

@arn - 你是否收到任何錯誤?在javascript或php? – Lix

+0

沒有錯誤,只顯示任何東西 – Slrg

相關問題