2016-03-28 57 views
0

我希望你能帮忙,我尝试新的项目,并希望用户使用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; 
    } 
} 
+0

$结果总是正确的,即使该查询返回零行。 – Vigikaran

+0

你的'query'调用有一些不一致:'query($ connection,$ sql)'和'query($ sql)'。哪一个是正确的?另外,它返回什么?资源?数组? –

+0

查询($ sql) - 这是我创建的帮助函数。 mysqli_query,我认为查询会导致一个布尔值。可能是错误的! –

回答

0
$result 

始终是真实的!尝试一下

if(count($result) > 0) 
{ 
/* your code for if true*/ 
} 
else 
{ 
/* code for false*/ 
} 
0

如果你不允许分享他们的个人资料,你将无法获得电子邮件地址。从您的查询中,您已经验证了电子邮件ID后,只有查询过程。所以写的代码,如果邮件没有得到

如果(计数($结果)< = 0){}

+0

我把电子邮件allready并将其添加到数据库,问题是即使数据库中存在电子邮件,它仍会继续添加。上面的代码没有为我工作 –

+0

因此,问题是返回总是为真的结果,以便发生问题,用$ row_count = 0更改if条件; $ sql =“SELECT * FROM users WHERE email ='”。$ email。 “'”; $ result = query($ sql); if($ result!=“”)$ row_count = mysql_num_rows($ result); – Lavanya

+0

if($ row_count> 0){如果电子邮件退出,请输入代码} else {insert} – Lavanya