Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.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
Facebook SDK v4登录PHP-多页_Php_Html_Facebook_Login_Sdk - Fatal编程技术网

Facebook SDK v4登录PHP-多页

Facebook SDK v4登录PHP-多页,php,html,facebook,login,sdk,Php,Html,Facebook,Login,Sdk,我想用Facebook按钮将登录添加到我的网页。我使用SDK v4.0成功登录 但我只在同一个页面中登录。($helper=new FacebookRedirectLoginHelper(相同页面)) 这是我的代码(loginFB.php)。这很好,但我的问题是: 如何在其他页面(defaultLogin.PHP)中包含此PHP。我在那里看不到$session var表单,它登录(因为它返回到我的defaultLogin.php,带有?code=FACEBOOK\u AUTH\u code),但

我想用Facebook按钮将登录添加到我的网页。我使用SDK v4.0成功登录

但我只在同一个页面中登录。($helper=new FacebookRedirectLoginHelper(相同页面))

这是我的代码(loginFB.php)。这很好,但我的问题是: 如何在其他页面(defaultLogin.PHP)中包含此PHP。我在那里看不到$session var表单,它登录(因为它返回到我的defaultLogin.php,带有?code=FACEBOOK\u AUTH\u code),但我看不到会话

有人能帮忙吗

谢谢

loginFB.php

<?php

session_start();

if(isset($_GET['action']) && $_GET['action'] === 'logout'){
    $session->destroySession();
    unset($_SESSION['token']);
    unset($session);
}

require_once( 'Facebook/FacebookSession.php' );
require_once( 'Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'Facebook/FacebookRequest.php' );
require_once( 'Facebook/FacebookResponse.php' );
require_once( 'Facebook/FacebookSDKException.php' );
require_once( 'Facebook/FacebookRequestException.php' );
require_once( 'Facebook/FacebookAuthorizationException.php' );
require_once( 'Facebook/GraphObject.php' );
require_once( 'Facebook/GraphUser.php' );
require_once( 'Facebook/GraphSessionInfo.php' );
require_once( 'config/fbconfig.php' );

use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\GraphUser;
use Facebook\GraphSessionInfo;


// init app with app id (APPID) and secret (SECRET)
FacebookSession::setDefaultApplication(APP_ID,APP_SECRET);

// login helper with redirect_uri
$helper = new FacebookRedirectLoginHelper( 'http://myWeb/defaultLogin.php' );

try{
    $session = $helper->getSessionFromRedirect();
}catch(Exception $e){
    //echo "Facebook error: ". $e->getMessage();
}

if(isset($session)){
    $_SESSION['token'] = $session->getToken();
    echo "Login Successful<br>";
    $request = new FacebookRequest($session, 'GET', '/me');
    $response = $request->execute();
    $graph = $response->getGraphObject(GraphUser::className());
    $graph2 = $response->getGraphObject()->asArray();



    echo "Id: " . $graph->getId() . "<br>";
    echo "Hi " . $graph->getName() . "<br>";
    echo "Email: " . $graph2['email'] . "<br>";
    // print profile data
    echo '<pre>' . print_r( $graph2, 1 ) . '</pre>';

    echo "<img src='http://graph.facebook.com/".$graph->getId()."/picture?type=large' border=0>";

    echo "<script> checkUser('".$graph->getId()."','".$session->getToken()."','".$graph2['email']."'); </script>";

    echo '<a href="?action=logout">Logout</a>';


}
else{
    echo "<a href = " . $helper->getLoginUrl(array( 'email', 'user_friends' )) . ">Login con Facebook v1</a>";
}


if(isset($_SESSION['token'])){
    $session = new FacebookSession($_SESSION['token']);

    try{
        $session->Validate(APP_ID, APP_SECRET);
    }catch(FacebookAuthorizationException $e){
        $session = '';
    }
}
?>

代码中缺少几个类。在使用
Facebook\Facebook会话之前,您需要向代码中添加以下类并且它应该可以工作

<!DOCTYPE html>
<?php session_start(); ?>
<html prefix="og: http://ogp.me/ns#" lang="es" conduit_compatibility_version="1" style="margin-top: 0px; position: relative !important;"><!--<![endif]--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    <meta charset="utf-8">
    <?php include 'head.php';?>   

(...)

<?php include 'header.php';?>  
<?php include 'navLogin.php';?> (...)
<?php include_once('loginFb.php')?>
 <!-- Navigator BAR -->
    <nav class="navbar navbar-inverse navbar-static-top" role="navigation">
        <div class="container"> (...)
require_once( 'Facebook/HttpClients/FacebookHttpable.php' );
require_once( 'Facebook/HttpClients/FacebookCurl.php' );
require_once( 'Facebook/HttpClients/FacebookCurlHttpClient.php' );
require_once( 'Facebook/Entities/AccessToken.php' );
require_once( 'Facebook/Entities/SignedRequest.php' );