我希望你能帮忙,我尝试新的项目,并希望用户使用Facebook登录。我得到它的工作,并创建一个函数,从SDK中拉出$ profile数组,并将其插入到我的数据库中,如果没有电子邮件存在。问题是,它总是添加用户,无论我尝试了很多东西来使其工作。Facebook的SDK阵列配置文件
自定义查询函数是mysqli_query();
函数调用了Facebook SDK:
facebookLoginRegister($profile['name'], $profile['email'], $profile['email']);
我的PHP低于:
function facebookLoginRegister($name, $email, $username){ // start of facebook check
$sql = "SELECT * FROM users WHERE email = '" .$email. "'";
$result = query($sql);
if(count($result) === 1){ // does email exist in database #1
if(isset($_COOKIE['email'])){ // if cookie is set then #2
$sql = "SELECT * FROM users WHERE email = '" .$_COOKIE['email']. "'";
// find the row of info containing credentials
$result = query($sql); // query the sql
$_SESSION['logged_in'] = 1;
$_SESSION['login_user'] = $name;
} // if cookie is set #2
$_SESSION['logged_in'] = 1;
$_SESSION['login_user'] = $name;
setcookie('email', $email, time() + (86400 * 30), "/");
} // email exist in database #1
if(!$result){
$sql = "INSERT INTO users (name, email, username)";
$sql .= " VALUES('" . $username . "', '" . $email . "', '".$name."');";
$query_new_user_insert = query($sql); // this will either be True or false
$_SESSION['logged_in'] = 1;
$_SESSION['login_user'] = $name;
}
}
$结果总是正确的,即使该查询返回零行。 – Vigikaran
你的'query'调用有一些不一致:'query($ connection,$ sql)'和'query($ sql)'。哪一个是正确的?另外,它返回什么?资源?数组? –
查询($ sql) - 这是我创建的帮助函数。 mysqli_query,我认为查询会导致一个布尔值。可能是错误的! –