首页 > 解决方案 > 使用 Facebook google API 响应登录时未分配给 SESSION

问题描述

我在使用 Facebook 和 Google API 登录时遇到了一些问题。我是 API 集成的新手,这就是为什么我不理解这个问题。

在索引页面上,我有单击 API 上的登录按钮被调用并成功登录,我想将登录人的姓名传递给 SESSION,但是当我单击登录时一切都做得很好,但名称没有分配给 SESSION,但我点击了在按钮上两次它完美地工作。我想要它单击一下。

在单击的索引页面上,我从 API 获取响应并将其发送到另一个页面 ajax2.php(对于 Facebook)这个页面只是检查用户是否存在,如果没有将该用户输入到数据库,并且在这个页面上这个用户名分配到会话。并再次在此页眉上设置为索引页。

但是当它出现在索引页面上时,它没有获得 SESSION 值。

代码:

<script>
function testAPI() {
    console.log('Welcome!  Fetching your information.... ');
    FB.api('/me', function(response) {
      console.log('Successful login for: ' + response.name);
      var user_name_facebook = response.name;
      //console.log('user : ' + fname);
      //console.log('User ID : ' + response.id);
      var user_id_facebook = response.id;
      //console.log('user id : ' + fid);
      if (user_name_facebook && user_id_facebook) {
           var i;
            <?PHP if(isset($a)) {
            }
            else {
                //console.log('for loop exicuted' + i);
             echo "window.location.href = \"https://example.com/ajax2.php? 
             user_name_facebook=\" + user_name_facebook + 
             \"&user_id_facebook=\" + 
              user_id_facebook;";
                }
                ?>
              }
           //console.log('facebook user:' + response.name);
          //document.getElementById('status').innerHTML =
            //'Thanks for logging in, ' + response.name + '!';
        });
      }
    </script>

ajax2.php

<?php 
header("Cache-Control: no-cache");
header("Pragma: no-cache");

$user_name_facebook=$_GET['user_name_facebook'];
$user_id_facebook=$_GET['user_id_facebook'];

$conn = mysqli_connect("","","","");    
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
     }
     else
     {
        //echo "connect";
     }

$sql = mysqli_query($conn, "SELECT * from mytable WHERE user_id_facebook = 
'$user_id_facebook'");
      if (mysqli_num_rows($sql) > 0) {
         echo 'Username exist....';
      }
      else
    {
        $query=mysqli_query($conn,"INSERT INTO mytable SET

            user_name_google='".$user_name_facebook."',
            user_mail_google=' ',
            user_name_facebook=' ',
            user_id_facebook='".$user_id_facebook."',     
            key_val=0,
            user_coins=5");      
            mysqli_close($conn);

     }
header('Location: https://example.com/index_login.php');

?>

标签: php

解决方案


推荐阅读