2016-03-28 54 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