Facebook的SDK阵列配置文件
我希望你能帮忙,我尝试新的项目,并希望用户使用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;
}
}
$result
始终是真实的!尝试一下
if(count($result) > 0)
{
/* your code for if true*/
}
else
{
/* code for false*/
}
如果你不允许分享他们的个人资料,你将无法获得电子邮件地址。从您的查询中,您已经验证了电子邮件ID后,只有查询过程。所以写的代码,如果邮件没有得到
如果(计数($结果)< = 0){}
我把电子邮件allready并将其添加到数据库,问题是即使数据库中存在电子邮件,它仍会继续添加。上面的代码没有为我工作 –
因此,问题是返回总是为真的结果,以便发生问题,用$ row_count = 0更改if条件; $ sql =“SELECT * FROM users WHERE email ='”。$ email。 “'”; $ result = query($ sql); if($ result!=“”)$ row_count = mysql_num_rows($ result); – Lavanya
if($ row_count> 0){如果电子邮件退出,请输入代码} else {insert} – Lavanya
$结果总是正确的,即使该查询返回零行。 – Vigikaran
你的'query'调用有一些不一致:'query($ connection,$ sql)'和'query($ sql)'。哪一个是正确的?另外,它返回什么?资源?数组? –
查询($ sql) - 这是我创建的帮助函数。 mysqli_query,我认为查询会导致一个布尔值。可能是错误的! –