Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Facebook登录、重定向循环_Php_Facebook_Redirect_Login - Fatal编程技术网

Php Facebook登录、重定向循环

Php Facebook登录、重定向循环,php,facebook,redirect,login,Php,Facebook,Redirect,Login,我正在将facebook登录包含到我的网页中,但我有一个问题,首先是代码: //FACEBOOK LOGIN if($_GET['method']=='facebook'){ require("_facebook.php"); $session_fb = $facebook->getSession(); if(!empty($session_fb)) { //Active session, let's try getting the user id

我正在将facebook登录包含到我的网页中,但我有一个问题,首先是代码:

//FACEBOOK LOGIN
if($_GET['method']=='facebook'){
    require("_facebook.php");
    $session_fb = $facebook->getSession();

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

        if(!empty($user)){
            //We have an active session, let's check if we have already registered the user
            $query = mysql_query("SELECT * FROM  ".PREFIX."user WHERE oauth_provider = 'facebook' AND oauth_uid = ". $user['id']);
            $ds = mysql_fetch_array($query);
            //If not, let's add it to the database
            if(empty($ds)){
                $query = mysql_query("INSERT INTO ".PREFIX."user (oauth_provider, oauth_uid, username, email) VALUES ('facebook', {$user['id']}, '{$user['name']}', '{$user['email']}')");
                $query = mysql_query("SELECT * FROM ".PREFIX."user WHERE userID = " . mysql_insert_id());
                $ds = mysql_fetch_array($query);
            }
            // this sets variables in the session 
            $_SESSION['oauth_uid'] = $ds['oauth_uid'];
            $_SESSION['oauth_provider'] = $ds['oauth_provider'];

            $_SESSION['ws_auth'] = $ds['userID'].":".$ds['password'];
            $_SESSION['ws_lastlogin'] = $ds['lastlogin'];
            $_SESSION['referer'] = $_SERVER['HTTP_REFERER'];
            setcookie("ws_auth", $ds['userID'].":".$ds['password'], time()+($sessionduration*60*60));               
            $login = 1;

        }
        else {
            # For testing purposes, if there was an error, let's kill the script
            die("There was an error.");
        }
    }
    else {

        # There's no active session, let's generate one
        $login_url = $facebook->getLoginUrl();
        header("Location: ".$login_url);
    }

    //end fblogin
}

问题是,我的代码没有读取会话,并进行无限的重定向循环:(

正如TommyBS所说,当前php SDK中没有getSession

此外,请记住:

1) 在facebook上的应用程序配置中,应用程序域、facebook登录的网站和(如果需要)facebook上的应用程序/页面选项卡URL字段应指向您要重定向的网站

2) 使用准备应用程序,不要忘记频道文件


3) 用正确的方法准备应用程序。

据我所知,getSession不是当前php sdk中的一种方法,因此它将永远不会被填充,或者您使用的不是php sdk而是您自己的系统?