Воспламенитель кода в IE, в приложении Facebook и моих проблемах - PullRequest
1 голос
/ 07 апреля 2011

У меня есть приложение FB (PHP / codeigniter) .. прекрасно работает .. ву.Однако в IE он обновляется и обновляется снова и снова.С Chrome и Fox все в порядке.

Я включу свой класс подключения ниже, но в основном мое приложение FB указывает на это, оно работает, и пользователь затем передается другому контроллеру для остальной частисессия.

Кто-нибудь имел опыт с этим раньше?Я на IE версии 8 64 бит на Win 7, но другие жаловались на другие версии и ОС.Я гуглил, но кажется (?) Единственным человеком с этой проблемой ..: - (

Anyhoo, вот мой контроллер.



<p>/**
 * @property Model_user $model_user
 * @property Model_session $model_session
 */
class Blue_Connect extends Controller {</p>

<code>function Blue_Connect()
{
    parent::Controller();
    $this->load->plugin('facebook');
}

function index()
{
    $this->load->model('Model_user', 'model_user');
    $this->load->model('Model_session', 'model_session');

    $my_url = $this->config->item('facebook_url');

    if ($this->session->userdata('user_id') > 0)
    {
        echo "<script>window.location.href='/buzz/';</script>";
        die();
    }
    else 
    {
        if(!isset($_REQUEST["code"])) {
            $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" . $this->config->item('app_id') . "&scope=" . $this->config->item('facebook_perms') . "&redirect_uri=" . urlencode($my_url);
            echo "<script>top.location.href='" . $dialog_url . "'</script>";
            die();
        }

        $token_url = "https://graph.facebook.com/oauth/access_token?client_id="
            . $this->config->item('app_id') . "&perms=" . $this->config->item('facebook_perms') . "&redirect_uri=" . urlencode($my_url) . "&client_secret="
            . $this->config->item('app_secret') . "&code=" . $_REQUEST["code"];

        $access_token = file_get_contents($token_url);

        $graph_url = "https://graph.facebook.com/me?" . $access_token;

        $tmp_graph = file_get_contents($graph_url);
        log_message("error", $tmp_graph);
        $user = json_decode($tmp_graph);

        $image = 'http://graph.facebook.com/'.$user->id.'/picture?type=large';
        $user_id = $this->model_user->process_user($user->id, $user->name, $user->email, $image);
        $this->session->set_userdata(array('fb_id' => $user->id, 'user_id' => $user_id, 'access_token' => $access_token));

        echo "<script>window.location.href='/blue_connect/';</script>";
        die();
    }
}
</code>

}

1 Ответ

1 голос
/ 07 апреля 2011

Вы установили $ config ['uri_protocol'] = 'PATH_INFO'; в config.php? У меня была эта проблема раньше, и это исправило ее для меня. Codeigniter не позволяет GET-параметры по умолчанию, поэтому сеанс не может быть установлен. Если это не помогает, закомментируйте window.location.reload (); линии, если вы используете JS SDK.

...