2013-11-04 63 views
1

我得到重定向循環,我還無法弄清楚我在哪裏做錯了。Facebook連接給予重定向循環

下面是我的應用程序設置: enter image description here

的config.php

session_start(); 
//Facebook App Id and Secret 
$appID='xxx'; 
$appSecret='xxxxxxx'; 

$base_url = "http://localhost/xxx/fbsource/Source3/facebook/"; 

的index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Login with Facebook</title> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript" src="js/oauthpopup.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $('#facebook').click(function(e){ 
     $.oauthpopup({ 
      path: 'login.php', 
      width:600, 
      height:300, 
      callback: function(){ 
       window.location.reload(); 
      } 
     }); 
     e.preventDefault(); 
    }); 
}); 


</script> 
</head> 

<body> 
<?php 
session_start(); 
if(!isset($_SESSION['User']) && empty($_SESSION['User'])) { ?> 
<img src="images/facebook.png" id="facebook" style="cursor:pointer;float:left;margin-left:550px;" /> 
<?php } else{ 

echo '<img src="https://graph.facebook.com/'. $_SESSION['User']['id'] .'/picture" width="30" height="30"/><div>'.$_SESSION['User']['name'].'</div>'; 
    echo '<a href="'.$_SESSION['logout'].'">Logout</a>'; 




} 
    ?> 

</body> 
</html> 

的login.php

<?php 

require 'config.php'; 
require 'lib/facebook/facebook.php'; 

$facebook = new Facebook(array(
     'appId'  => $appID, 
     'secret' => $appSecret, 
     )); 
//get the user facebook id  
$user = $facebook->getUser(); 
$base_url = "http://localhost/xxx/fbsource/Source3/facebook/"; 
if($user){ 

    try{ 
     //get the facebook user profile data 
     $user_profile = $facebook->api('/me'); 
     $params = array('next' => $base_url.'logout.php'); 
     //logout url 
     $logout =$facebook->getLogoutUrl($params); 
     $_SESSION['User']=$user_profile; 
     $_SESSION['logout']=$logout; 
    }catch(FacebookApiException $e){ 
     error_log($e); 
     $user = NULL; 
    }  
} 

if(empty($user)){ 
//login url 
$loginurl = $facebook->getLoginUrl(array(
       'scope'   => 'email,read_stream, publish_stream, user_birthday, user_location, user_work_history, user_hometown, user_photos', 
       'display'=>'popup' 
       'redirect_url'=> $base_url."login.php"; 
       )); 


header('Location: '.$loginurl); 

} 





?> 
<!-- after authentication close the popup --> 
<script type="text/javascript"> 

window.close(); 

</script> 

我測試了Chrome和IE10

+0

是否有錯誤?哪個頁面有循環?你需要從'config.php'中刪除'session_start();'因爲facebook php SDK文件提供了 –

+0

沒有錯誤。我在login.php上獲取重定向 – Volatil3

+0

將你的文件上傳到公共服務器,它應該可以工作,因爲**'localhost' **無法通過Facebook –

回答