无法将facebook用户数据发送到数据库

时间:2013-08-31 17:06:27

标签: php ajax facebook facebook-javascript-sdk

我有一个Facebook应用程序,我需要获取用户的ID,姓名,电子邮件和他提交的输入值发送到数据库。出于某种原因,我不知道数据是否未被发送。我已经尝试在saveuser.php中回显变量,而我只得到输入值。我也没有在控制台中出现任何错误。我怀疑它与AJAX功能有关:

编辑:

FB.login(function(response) 
{
    console.log(response);
    if (response.status=="connected") 
    {
        console.log("You're logged in");
        FB.api('/me', function(response) 
        {
           $.ajax({
                type: 'POST',
                url: 'saveuser.php',
                data: {
                        name = response.name,
                        fbid = response.id,
                        email = response.email
                      };
                 });
        }); 
    } 
});

saveuser.php:

 require('config.php');

if (isset($_POST['name']) && isset($_POST['email']) && isset($_POST['fbid'])) 
{
   $fbid = mysql_real_escape_string($_POST['fbid']);
   $name = mysql_real_escape_string($_POST['name']);
   $email = mysql_real_escape_string($_POST['email']);
   $receipt = mysql_real_escape_string($_POST['receipt']);
   addUser($name, $email, $fbid, $receipt);
}

function addUser($name, $email, $fbid, $receipt) 
{
   $query = "SELECT id FROM rkiosk_monster_users WHERE fbid = '$fbid' LIMIT 5";
   $result = mysql_query($query);
   $rows = mysql_num_rows($result);
   if ($rows == 0) 
   {
      $query = "INSERT INTO rkiosk_monster_users (name, email, fbid, receipt)  VALUES ('$name', '$email', '$fbid', '$receipt')";
   }
   mysql_query($query);
}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我设法通过使用jQuery来解决问题:

  FB.api('/me', function(response) {

   //alert(response.name);
   $("#name").val(response.name);
   $("#fbid").val(response.id);
   $("#email").val(response.email);

  }); 

   $(function(){
    $("#check").submit(function(e){    
       e.preventDefault();  

        $.post("saveuser.php", $("#check").serialize(),
            function(data){
                var jqueryObj = $('<p>You've been registered!</p>').appendTo('#alertbox');
                $("#checknumber").val("");
            }, "json");    
        });
});

并使用隐藏输入,以便我可以提交他们的值:

   <input type="hidden" name="fbid" id="fbid"/>
   <input type="hidden" name="email" id="email"/>
   <input type="hidden" name="name" id="name"/>

不是最干净的方法,但我无法让AJAX行动起作用。