无法在数据库中保存Facebook登录用户详细信息

时间:2015-11-30 12:02:19

标签: javascript jquery facebook facebook-javascript-sdk facebook-login

我在Facebook登录后试图在我的数据库中保存用户详细信息。我正在使用javascript SDK。我通过" onlogin"进行了回调。我认为问题在于我的javascript代码。请参阅下面的代码。

请帮助!!

HTML:

<html>
<head>
<title>Facebook Login JavaScript Example</title>
<meta charset="UTF-8">

<script type="text/javascript">
$(document).ready(function(){
    function std() {
        FB.api('/me', function(response) {
            var details = JSON.stringify(response);
            var name = details.first_name + details.last_name;
            var email = details.email;
            var gender = details.gender;
        });

        $.ajax({
            type: "POST",
            url: "std.php",
            data: "&name="+name+ "&email=" +email+ "&gender=" +gender,
            success: function(){
                alert("Success");
            }
        });
    }
});
</script>
</head>
<body>
<div id="fb-root"></div>
<div id="fb-root"></div>
<script>
(function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s);
    js.id = id;
    js.src = "//connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v2.5&appId=AppID";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>

<div class="fb-login-button" data-max-rows="3" data-size="large" data-show-faces="false" data-auto-logout-link="true" scope="public_profile,email" onlogin="std();">
</div>
</body>
</html>

PHP:

$servername = "localhost";
$username = "username";
$password = "password";

$connection = mysql_connect($servername, $username, $password);
if (!$connection){
    die('Could not connect: ' . mysql_error());
}

mysql_select_db("database", $connection);

$name = $_POST['name'];
$name = mysql_real_escape_string($name);

$email = $_POST['email'];
$email  = mysql_real_escape_string($email);

$gender = $_POST['gender'];
$gender = mysql_real_escape_string($gender);

$sql = "INSERT INTO newmember VALUES ( '', '{$name}', '{$email}' ,'{$gender}', '' ,'')";

$db->query($sql); 

mysql_close($connection);

2 个答案:

答案 0 :(得分:1)

您的代码应为

<html>
<head>
    <title>Facebook Login JavaScript Example</title>
    <meta charset="UTF-8">

    <script type="text/javascript">
        $(document).ready(function () {            
        });
        function std() {
            FB.api('/me', function (response) {

                //var details = JSON.stringify(response);
                 var details = response;
                var name = details.first_name + details.last_name;
                var email = details.email;
                var gender = details.gender;

                $.ajax({
                    type: "POST",
                    url: "std.php",
                    data: "&name=" + name + "&email=" + email + "&gender=" + gender,
                    success: function () {
                        alert("Success");
                    }
                });
            });

        }
    </script>
</head>
<body>
    <div id="fb-root"></div>
    <div id="fb-root"></div>
    <script>
        (function (d, s, id) {
            var js, fjs = d.getElementsByTagName(s)[0];
            if (d.getElementById(id)) return;
            js = d.createElement(s); js.id = id;
            js.src = "//connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v2.5&appId=AppID";
            fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));</script>

    <div class="fb-login-button" data-max-rows="3" data-size="large" data-show-faces="false" data-auto-logout-link="true" scope="public_profile,email" onlogin="std();">
    </div>
</body>
</html>

答案 1 :(得分:0)

在你的html文件的头部添加jQuery,在你的标题上方。

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
相关问题