2014-01-14 6 views
0

У меня проблема с перенаправлением страницы после входа в сайт с помощью facebook.
1. нажатием кнопки facebook входа в систему с сайта он перенаправляет на facebook странице входа
2. Пользователь получить аутентификации, но это не перенаправление на следующей странице, приведенной в headrer('');
3. Если я обновить одну страницу, то это перенаправление на данный расположение и URL выглядит как = "> http://192.1.1.1/mysite/welcome.php/# ​​=
4. Это правильно для google.com, но не работает для локального URL и Google URL выглядит как incorrect google url Мой код
Перенаправление страницы после входа в систему с помощью facebook

if(isset($_GET['fb'])) 
{ 
    $token_url = "https://graph.facebook.com/oauth/access_token?"."client_id=".$config['App_ID']."&redirect_uri=".urlencode($config['callback_url'])."&client_secret=".$config['App_Secret']."&code=".$_GET['code']; 
    $response = file_get_contents($token_url); 
    $params = null; 
    parse_str($response, $params); 

    $graph_url = "https://graph.facebook.com/me?access_token=".$params['access_token']; 
    $user = json_decode(file_get_contents($graph_url)); //user data from facebook 

    $email = $user->{'email'}; //i am getting email id from json data 

    //search out for entry available for email in database 
    $val_user = "SELECT email FROM tbl_facebook WHERE email ='".$email."'"; 
    $res_val_user = $con->query($val_user); 
    $count = mysqli_num_rows($res_val_user); 
    // if not then insert data to database 
    if($count==0) 
    { 
     $ins_fb = "INSERT INTO tbl_facebook set email='".$email."'"; 
     $res_fb = mysqli_query($con,$ins_fb); 
     if($res_fb) 
     { 
      //echo "facebook data saved"; exit; //working for this 
      //header('Location:https://www.google.co.in/'); //working for this also 
      header('Location:http://192.1.1.1/mysite/welcome.php'); 
     } 
     else 
     { 
      echo "facebook data is not saved"; 
     } 
    } 
    else // if yes then redirect to welcome page 
    { 
     //echo "login successfully"; exit; // working for this also 
     header('Location:http://192.1.1.1/mysite/welcome.php'); // getting problem to redirect 
     //header('Location:https://www.google.co.in/'); 
    } 
} 



<?php 
    // code for facebook login 

require 'lib/facebook/src/config.php'; 
require 'lib/facebook/src/facebook.php'; 
// Create our Application instance (replace this with your appId and secret). 
$facebook = new Facebook(array(
     'appId' => $config['App_ID'], 
     'secret' => $config['App_Secret'], 
     'cookie' => true 
)); 
?> 



<a class="btn-facebook" href="https://www.facebook.com/dialog/oauth?client_id=<?php echo $config['App_ID']?>&redirect_uri=<?php echo $config['callback_url']?>&scope=email,user_likes,publish_stream"> 
        <i class="icon-facebook icon-large"></i> 
        Signin with Facebook 
       </a> 
+0

можете ли вы отправить скрипт входа, который вы используете? –

+0

Функциональность входа в систему работает нормально, и я получаю пользовательские данные из facebook, но получаю проблемы при перенаправлении –

+0

Итак, он приходит внутрь if (isset ($ _ GET ['fb'])) {} и может получать пользовательские данные, но заголовок ('Location : HTTP: //192.1.1.1/mysite/welcome.php '); не работает ? –

ответ

0

Заголовок перенаправлять вопросы часто, когда есть белое пространство после PHP закрывающего тэга или перед начальным тегом, выхода перед заголовком() и т.д. .

Чтобы избежать этого, мы должны убедиться, что

  • Не указано пустое место как указано
  • Не эхо ничего перед этим.

Кроме того, даже если заголовок() не работает, то добавьте выход(), как

header('Location:http://192.1.1.1/mysite/welcome.php'); 
exit(); 

и, наконец, вы можете использовать JS, как

echo '<script>window.location = "'.$url.'";</script>'; 
exit; 

Надеется, что это помогает :)

0

Просто используйте локальный URL-адрес пути не используйте полный URL-адрес

header("Location: welcome.php"); 
Смежные вопросы