我正在从facebookapi检索用户信息,并通过ajax将其发送到php文件中,写入mysql数据库。这样做的原因是,我可以生成一个随机凭证代码给他们,这也是正在写入数据库。
我在这方面一点经验都没有,我只是一路学习。
我的php文件:
<?php
include_once 'db_connect.php';//$mysqli = new mysqli(HOST, USER, PASSWORD,
DATABASE);
include_once 'psl-config.php';//database login details
if(isset($_POST['name'],$_POST['email'],$_POST['id'])){
$name = $_POST['name'];
$email = $_POST['email'];
$uid = $_POST['id'];
$code = generateRandomString();
$prep_stmt="INSERT INTO memberinfo (name, email, id,code,dateadded) VALUES ('$name','$email','$uid','$code',now())";
$stmt = $mysqli->prepare($prep_stmt);
if($stmt) {
$stmt->execute();
$stmt->close();
}}
然后,我的javascript通过onlogin=“checkloginstate();”从facebook按钮运行功能:
function checkLoginState() {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
FB.api('/me', { locale: 'en_US', fields: 'name,email,id' },
function(response) {
$.ajax({
method: "POST",
url: "includes/process_fb_login.php",
data: response,
dataType: 'json',
cache: false,
success: function(data){
console.log(data);
}
});
});
}else{
alert("Failed to login");
}
});
}
目前,没有任何东西被写入数据库,我甚至不知道如何排除故障,以查看正在执行的过程。
1条答案
按热度按时间w8ntj3qf1#
我有几个问题:
首先-我的数据库id是“整数”类型。这意味着我从facebook获得的身份证号码长度为15个字符,最大值为2147483647(10个字符)(有符号)或4294967295(无符号)。所以我把这个改成了varchar。
第二,看起来
if(isset($_POST['name'],$_POST['email'],$_POST['id']))
有点累了,我没法让它跑过那条线。最后这就是我的代码。不知道这是不是最好的方法,但是,嘿,对我来说很管用。