我在我的网站上运行一个特殊的 facebook 登录,当用户点击它时,必须发生以下情况:
- 连接FB
- 如果 facebook ID 已在用户数据库中识别,请执行 XXX
- 如果 facebook ID 无法识别,请执行 YYY
出于某种原因,我无法获得检查 facebook ID 以正常工作的 ajax 查询。我已经在这上面花了几个小时,但仍然没有运气(开始感觉像是一个真正的timesink)......即使我将查询设置为只返回0(例如,将第二个回声也更改为'echo 0') ,它没有(除非我将整个函数剥离到字面上只是'echo 0')。关于为什么会发生这种情况的任何想法?下面的代码:
函数中调用的 ajax 查询(输入 var fbid):
<?php
// configuration
require("../html/includes/config.php");
// connect to server
$connect = mysql_connect(SERVER, USERNAME, PASSWORD);
$fbid = $_POST["fbid"];
$fbidcheck = query('SELECT * FROM usertable WHERE fbid = ?', $_POST["fbid"]);
if (isset($fbidcheck[0]["fbid"]))
echo 0;
else
echo 1;
?>
当有人点击登录按钮时调用的 JS 函数:
// FB login function
function fblogin() {
FB.login(function(response) {
if (response.authResponse) {
// Here, I want to test if the facebook ID is already in the table
var fbid = response.authResponse.userID;
$.post("check_fbid.php", {'fbid': fbid}, function(result)
{
if(result == 0)
{
// login in the user
// use fbid to call session, etc. for login
location.reload();
return true;
}
else
{
// open new box on page to let user register
openRegisterBox();
return false;
}
});
} else {
// Login was cancelled or failed
return false;
}
}, {scope: 'email'});
}
同样,我已经将问题归结为 ajax 查询没有正常运行(我什至尝试重新创建它几次)。任何帮助将不胜感激。
谢谢