Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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 将POST参数添加到fb:login按钮_Php_Javascript_Facebook - Fatal编程技术网

Php 将POST参数添加到fb:login按钮

Php 将POST参数添加到fb:login按钮,php,javascript,facebook,Php,Javascript,Facebook,你好,当用户单击“使用facebook登录”按钮时,我正在尝试设置帖子。。这是因为在我编写的代码中,如果您已注销,但在facebook中登录,那么您将自动再次登录该站点。。。所以如果你退出,你永远不会退出 为了避免这种情况,我试图设置一个帖子,设置一个经典的条件 if ( isset ($_POST['fbconnect'])) 我只需要添加一个隐藏的输入并发送表单usinf fb:login按钮 这是我试过的。。没有运气 <form name="fbconnect" method

你好,当用户单击“使用facebook登录”按钮时,我正在尝试设置帖子。。这是因为在我编写的代码中,如果您已注销,但在facebook中登录,那么您将自动再次登录该站点。。。所以如果你退出,你永远不会退出

为了避免这种情况,我试图设置一个帖子,设置一个经典的条件

 if ( isset ($_POST['fbconnect'])) 
我只需要添加一个隐藏的输入并发送表单usinf fb:login按钮

这是我试过的。。没有运气

<form  name="fbconnect" method="post">
<input   type="hidden" name="fbconnect" value="fbconnect"  />

 <div id="fb-root"></div>
 <fb:login-button scope='email,user_birthday'></fb:login-button></form>
 <?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
  $(this).parents('form').submit();
 });
 };

(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>

更好的做法是在用户注销时使用重定向,而不是POST,即:

HTML:

如果您坚持要发布帖子,可以使用jQuery简化内容:

FB.Event.subscribe('auth.login', function(response) { 
  $.post("index.php", {fbconnect: fbconnect}, function(data, response) {
    alert(data);
  });

});

更好的做法是在用户注销时使用重定向,而不是POST,即:

HTML:

如果您坚持要发布帖子,可以使用jQuery简化内容:

FB.Event.subscribe('auth.login', function(response) { 
  $.post("index.php", {fbconnect: fbconnect}, function(data, response) {
    alert(data);
  });

});

很抱歉,也许你的回答很好,但我真的是javascript的noob,这就是为什么我最终尝试了php解决方案,我也在一个代码中实现了这一点,我无法触摸注销设置,并且基于cookies,我只是根据cookies创建一个条件,看看它是否登录。。。。如果你告诉我如何使用该脚本,或者真的像复制粘贴那样简单,我会尝试这两种方法,非常感谢(我担心会弄乱当前注销,我不能弄乱当前注销)第二种解决方案我阻止了一个带有原点“”的帧访问带有原点“”的帧。请求访问的帧具有“https”协议,被访问的帧具有“http”协议。协议必须匹配。您的第一个建议有效,但请!!回答这个问题,我只需要用我的网站状态以及facebook状态response.status!=“连接”。。。但是我在Javascript方面是个傻瓜。。如果我没有条件,这会产生一个loop@JulesMartinez我已经更新了代码,请检查它(没有当前的用户id)对不起,也许你的答案很好,但我真的是一个javascript高手,这就是为什么我最终尝试php解决方案的原因,我在一个代码中实现了这一点,我无法触摸注销设置,并且基于cookies,我只是根据cookies设置一个条件,看看它是否已登录。。。。如果你告诉我如何使用该脚本,或者真的像复制粘贴那样简单,我会尝试这两种方法,非常感谢(我担心会弄乱当前注销,我不能弄乱当前注销)第二种解决方案我阻止了一个带有原点“”的帧访问带有原点“”的帧。请求访问的帧具有“https”协议,被访问的帧具有“http”协议。协议必须匹配。您的第一个建议有效,但请!!回答这个问题,我只需要用我的网站状态以及facebook状态response.status!=“连接”。。。但是我在Javascript方面是个傻瓜。。如果我没有条件,这会产生一个loop@JulesMartinez我已经更新了代码,请检查(没有当前用户id)
FB.Event.subscribe('auth.authResponseChange', function(response) {
  if (response.status == "connected") {
    // log in login
  }
  else if (response.status != "connected") {
    // logout logic, i.e
    // location.href = "/sessions/logout";
    alert("User has disconnected")
    location.href = "/index.php?fbconnect=fbconnect"
  }
});
FB.Event.subscribe('auth.login', function(response) { 
  $.post("index.php", {fbconnect: fbconnect}, function(data, response) {
    alert(data);
  });

});