私は自分のサイトで特別な facebook ログインを実行しています。ユーザーがクリックすると、次のことが発生する必要があります。
- FBとつながる
- Facebook ID がユーザー データベースで既に認識されている場合は、XXX を実行します。
- Facebook ID が認識されない場合は、YYY を実行します
何らかの理由で、facebook ID をチェックする ajax クエリが正常に機能していません。私はこれに数時間を費やしましたが、まだ運がありません(本当のタイムシンクのように感じ始めています)...クエリを0のみを返すように設定しても(たとえば、2番目のエコーも「エコー0」に変更します) 、そうではありません(関数全体を文字通り「エコー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 クエリが正しく実行されていないことを突き止めました (何度か再作成を試みました)。どんな助けでも大歓迎です。
ありがとう