为什么我得到一个“页面没有正确重定向”错误? [英] Why am I getting a "the page isn't redirecting properly" error?

查看:110
本文介绍了为什么我得到一个“页面没有正确重定向”错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从nettuts得到这个,有人可以告诉我为什么我得到一个该页面没有正确重定向的错误?

 <?php 
#我们需要库
require(facebook.php);

#创建Facebook对象
$ facebook = new Facebook(array(
'appId'=>'APP_ID_HERE',
'secret'=>' APP_SECRET_HERE',
'cookie'=> true
));

#我们来看看我们是否有一个活动的会话
$ session = $ facebook-> getUser();

如果(!empty($ session)){
#活动会话,让我们尝试获取用户标识(getUser())和用户信息(api& ))
try {
$ uid = $ facebook-> getUser();

#req_perms是所需权限的逗号分隔列表
$ url = $ facebook-> getLoginUrl(array(
'req_perms'=>'email,user_birthday, status_update,publish_stream,user_photos,user_videos'
));
header(Location:$ url);
} catch(Exception $ e){}
} else {
#没有活动的会话,让我们生成一个
$ login_url = $ facebook-> getLoginUrl();
header(Location:。$ login_url);
}


解决方案

code> $ facebook-> getLoginUrl(array(...)),创建重定向循环。



只有未经身份验证的用户(使用 req_perms 重定向)应位于 else 子句中)。 尝试中的重定向只有在您检测到该用户未授予您所有必需权限的情况下才会发生。



您可以通过调用以下方式来检查许可权限:

  $ perms = $ facebook-> api(array(
' ="'fql.query',
'query'=>'SELECT email,user_birthday,status_update,publish_stream,user_photos,user_videos FROM permissions WHERE uid ='。$ facebook-> getUser()
));



修改后的代码:

 <?php 
#我们需要库
require(facebook.php);

#创建Facebook对象
$ facebook = new Facebook(array(
'appId'=>'APP_ID_HERE',
'secret'=>' APP_SECRET_HERE',
'cookie'=> true
));

#我们来看看我们是否有一个活动的会话
$ session = $ facebook-> getUser();

if(empty($ session)){
#没有活动的会话,让我们生成一个
$ url = $ facebook-> getLoginUrl(array(
'req_perms'=>'email,user_birthday,status_update,publish_stream,user_photos,user_videos'
));
header(Location:$ url);
退出;
}
//用户登录


I got this from nettuts, can someone please tell me why am I getting a "the page isn't redirecting properly" error?

<?php
# We require the library
require("facebook.php");

# Creating the facebook object
$facebook = new Facebook(array(
    'appId'  => 'APP_ID_HERE',
    'secret' => 'APP_SECRET_HERE',
    'cookie' => true
));

# Let's see if we have an active session
$session = $facebook->getUser();

if(!empty($session)) {
    # Active session, let's try getting the user id (getUser()) and user info (api->('/me'))
    try{
        $uid = $facebook->getUser();

        # req_perms is a comma separated list of the permissions needed
        $url = $facebook->getLoginUrl(array(
            'req_perms' => 'email,user_birthday,status_update,publish_stream,user_photos,user_videos'
        ));
        header("Location: $url");
    } catch (Exception $e){}
} else {
    # There's no active session, let's generate one
    $login_url = $facebook->getLoginUrl();
    header("Location: ".$login_url);
}

解决方案

You redirect authenticated user to $facebook->getLoginUrl(array(...)), creating a redirect loop.

You should redirect only unauthenticated users (redirect with req_perms should be in else clause). The redirect in try should happen only if you detect that user hasn't granted you all required permissions.

You can check granted permissions by invoking:

$perms = $facebook->api(array(
    'method' => 'fql.query',
    'query' => 'SELECT email,user_birthday,status_update,publish_stream,user_photos,user_videos FROM permissions WHERE uid=' . $facebook->getUser()
));


Modified code:

<?php
# We require the library
require("facebook.php");

# Creating the facebook object
$facebook = new Facebook(array(
    'appId'  => 'APP_ID_HERE',
    'secret' => 'APP_SECRET_HERE',
    'cookie' => true
));

# Let's see if we have an active session
$session = $facebook->getUser();

if(empty($session)) {
    # There's no active session, let's generate one
    $url = $facebook->getLoginUrl(array(
        'req_perms' => 'email,user_birthday,status_update,publish_stream,user_photos,user_videos'
    ));
    header("Location: $url");
    exit;
}
// user is logged in

这篇关于为什么我得到一个“页面没有正确重定向”错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆