php - 当用户通过 facebook 使用连接时无法从网站注销用户

标签 php javascript mysql facebook

好吧,我编写了一个代码,将用户连接到我的数据库,然后我设置为该用户的登录名,如果电子邮件已经在数据库中,我只需登录用户...

问题是注销按钮不起作用..我已经尝试过了。

session_start(); 
session_destroy();

在注销时,但一旦重定向到索引页面,(我认为再次登录)

我怎样才能避免这种情况..

编辑:我不希望用户从 Facebook 注销。刚刚从我的网站注销

这是我的代码。

<?php
if ($userId) {
 //
 // already logged? show some data
 $userInfo = $facebook->api('/' + $userId);





 if (isset($userInfo['email']))

{ include "facebookregister.php"; } else { echo "no hay permisos de facebook"; }

} else {
 //
 // use javaascript api to open dialogue and perform
 // the facebook connect process by inserting the fb:login-button
 ?>
 <div id="fb-root"></div>
 <fb:login-button scope='email,user_birthday'></fb:login-button>
 <?php
}
?>
 <script>
 window.fbAsyncInit = function() {
 FB.init({
 appId : <?=YOUR_APP_ID?>,
 status : true,
 cookie : true,
 xfbml : true,
 oauth : true,
 });



FB.Event.subscribe('auth.login', function(response) {
 // ------------------------------------------------------
 // This is the callback if everything is ok
 window.location.reload();
 });
 };

(function(d){
 var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
 js = d.createElement('script'); js.id = id; js.async = true;
 js.src = "//connect.facebook.net/en_US/all.js";
 d.getElementsByTagName('head')[0].appendChild(js);
 }(document));
</script>

还有注销。

function logout_action()
    {
        $srv_nms=BASE;
        $srv_nms=str_replace("http://","",$srv_nms);
        $srv_nms=str_replace("https://","",$srv_nms);
        $srv_nms=str_replace("www.","",$srv_nms);


        $srv_pats=$srv_nms;

        $srv_nms_arr=explode("/",$srv_nms);
        $srv_nms=$srv_nms_arr[0];


        $srv_pats=str_replace($srv_nms."/","",$srv_pats);


        setcookie(COOKIE_LOGINID,"",0,"/".$srv_pats,$srv_nms);
        setcookie(COOKIE_USERNAME,"",0,"/".$srv_pats,$srv_nms);
        setcookie(COOKIE_PASSWORD,"",0,"/".$srv_pats,$srv_nms);

    session_start(); 
session_destroy();

        header("Location: ".$this->make_url("user/login/l"));
        die;
    }

最佳答案

我想我会使用cookie。注销后,设置一个 cookie 告诉您已请求注销。然后在主页上,在从 facebook API 获取数据之前,检查 cookie。显然,您必须在登录时覆盖 cookie 或使 cookie 过期...但这应该可以为您解决问题。

关于php - 当用户通过 facebook 使用连接时无法从网站注销用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16756337/

相关文章:

php - 将数组键转换为多维数组

php - 我应该使用 user_id (主键)还是 user_name (唯一索引)从 Mysql 插入和获取数据

javascript - 正则表达式用于替换非数字字符并在键入电话号码时插入破折号

javascript - 从外部 js 脚本创建元素并插入到 html 中

javascript - 为什么我的 Chrome 扩展代码无法打开新标签页?

java - 如何使用 Tomcat 服务器缓存表 (MySQL) 以查找数据

mysql排序字符串编号

php - 将 .php 数组传递到 javascript 代码 jquery/ajax

mysql - jdbcTemplate查询序列化

php - 使用删除和添加操作对 Woocommerce Storefront header 的内容重新排序