Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.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_Facebook Php Sdk_Facebook Login_Logout - Fatal编程技术网

Php facebook登录和从网站注销?

Php facebook登录和从网站注销?,php,facebook,facebook-php-sdk,facebook-login,logout,Php,Facebook,Facebook Php Sdk,Facebook Login,Logout,我正在用facebook帐户信息登录和注销一个网站。为此,我将我的代码制作成这样 <div id="fb-root"></div> <script type="text/javascript"> //<![CDATA[ window.fbAsyncInit = function() { FB.init({ appId : 'XXXXXXXXXXXXXXXX', // App ID channelURL : '', //

我正在用facebook帐户信息登录和注销一个网站。为此,我将我的代码制作成这样

<div id="fb-root"></div>
<script type="text/javascript">
//<![CDATA[
window.fbAsyncInit = function() {
   FB.init({
     appId      : 'XXXXXXXXXXXXXXXX', // App ID
     channelURL : '', // Channel File, not required so leave empty
     status     : true, // check login status
     cookie     : true, // enable cookies to allow the server to access the session
     oauth      : true, // enable OAuth 2.0
     xfbml      : false  // parse XFBML
   });
};
// logs the user in the application and facebook
function login(){
FB.getLoginStatus(function(r){
     if(r.status === 'connected'){
            window.location.href = 'fbconnect.php';
     }else{
        FB.login(function(response) {
                if(response.authResponse) {
              //if (response.perms)
                    window.location.href = 'fbconnect.php';
            } else {
              // user is not logged in
            }
     },{scope:'email'}); // which data to access from user profile
 }
});
}

// Load the SDK Asynchronously
(function() {
   var e = document.createElement('script'); e.async = true;
   e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
   document.getElementById('fb-root').appendChild(e);
}());

//]]>
</script>
<a href='#' onclick='login();'>Facebook Login</a>
<?php
    require 'src/facebook.php';
    $facebook = new Facebook(array(
           'appId'  => 'XXXXXXXXXXXXXXXX',
           'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX',
           'cookie' => true,
    ));
    $user = $facebook->getUser();
    $loginUrl = $facebook->getLoginUrl();
    //echo "<a href='$loginUrl'>login</a>";

    $logoutUrl = $facebook->getLogoutUrl();
    //echo $loginUrl; 
    if($user){
        $_SESSION['user_info'] = $user; 
        $_SESSION['user_pro']= $facebook->api('/me');
        echo $_SESSION['user_pro']['first_name'];
        echo $_SESSION['user_pro']['last_name'];
        echo '<pre>';
        //print_r($_SESSION);
        echo '</pre>';
    }
    else{
        echo 'not logged in '; 
    }
    echo "<a href='logout.php'>log out </a>"
?>
Notice: Undefined variable: facebook in logout.php on line 3 Fatal error: Call to a member function getAccessToken() on a non-object in logout.php on line 3.
对于Index.html,我的代码如下

<div id="fb-root"></div>
<script type="text/javascript">
//<![CDATA[
window.fbAsyncInit = function() {
   FB.init({
     appId      : 'XXXXXXXXXXXXXXXX', // App ID
     channelURL : '', // Channel File, not required so leave empty
     status     : true, // check login status
     cookie     : true, // enable cookies to allow the server to access the session
     oauth      : true, // enable OAuth 2.0
     xfbml      : false  // parse XFBML
   });
};
// logs the user in the application and facebook
function login(){
FB.getLoginStatus(function(r){
     if(r.status === 'connected'){
            window.location.href = 'fbconnect.php';
     }else{
        FB.login(function(response) {
                if(response.authResponse) {
              //if (response.perms)
                    window.location.href = 'fbconnect.php';
            } else {
              // user is not logged in
            }
     },{scope:'email'}); // which data to access from user profile
 }
});
}

// Load the SDK Asynchronously
(function() {
   var e = document.createElement('script'); e.async = true;
   e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
   document.getElementById('fb-root').appendChild(e);
}());

//]]>
</script>
<a href='#' onclick='login();'>Facebook Login</a>
<?php
    require 'src/facebook.php';
    $facebook = new Facebook(array(
           'appId'  => 'XXXXXXXXXXXXXXXX',
           'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX',
           'cookie' => true,
    ));
    $user = $facebook->getUser();
    $loginUrl = $facebook->getLoginUrl();
    //echo "<a href='$loginUrl'>login</a>";

    $logoutUrl = $facebook->getLogoutUrl();
    //echo $loginUrl; 
    if($user){
        $_SESSION['user_info'] = $user; 
        $_SESSION['user_pro']= $facebook->api('/me');
        echo $_SESSION['user_pro']['first_name'];
        echo $_SESSION['user_pro']['last_name'];
        echo '<pre>';
        //print_r($_SESSION);
        echo '</pre>';
    }
    else{
        echo 'not logged in '; 
    }
    echo "<a href='logout.php'>log out </a>"
?>
Notice: Undefined variable: facebook in logout.php on line 3 Fatal error: Call to a member function getAccessToken() on a non-object in logout.php on line 3.
在这里,它很容易登录,但在注销中,它显示了错误。有人能告诉我如何解决这个问题吗?我真的是facebook应用程序的新手。因此,任何帮助和建议都是非常值得赞赏的。谢谢

试试看

$facebook->destroySession();
其中,
$facebook
facebook
类的实例。根据您的评论,如果您也想从facebook注销,则需要在注销功能中销毁会话,如


谢谢你的回复,但是你能告诉我如何从facebook完全从网站注销吗。在我的情况下,它只是从网站上注销,而不是从facebook上注销。是的,我使用了与你所说的相同的方法,但它不起作用。我的logout.php代码如下所示