2017-09-11 1 views
2

Mon application a maintenant 2 connexion, utilisateur peut se connecter avec le compte de l'application ou facebook, maintenant je voudrais demander, quand je me connecte avec facebook, le nom d'utilisateur, email et mot de passe du compte facebook peut être stocké dans la même table avec mon enregistrement de compte d'application? J'utilise localhost et php pour la base de données et j'utilise Android Studio pour développer l'application, parce que maintenant ma tâche est si l'utilisateur se connecte avec facebook dans mon application, quand il veut créer un nouveau compte, il ne peut pas utiliser la même adresse e-mail juste maintenant. J'espère que quelqu'un comprend ma question. Ci-dessous mon login et enregistrer l'application du code de compte:créer un compte avec un compte différent dans l'application android

Connexion:

<?php 

require_once '../includes/DbOperations.php'; 

$response = array(); 

if($_SERVER['REQUEST_METHOD']=='POST'){ 
if(isset($_POST['username']) and isset($_POST['password'])){ 
    $db = new DbOperations(); 

    if($db->userLogin($_POST['username'], $_POST['password'])){ 
     $user = $db->getUserByUsername($_POST['username']); 
     $response['error'] = false; 
     $response['user_id'] = $user['user_id']; 
     $response['email'] = $user['email']; 
     $response['username'] = $user['username']; 


    }else{ 
     $response['error'] = true; 
     $response['message'] = "Invalid username or password";   
    } 

}else{ 
    $response['error'] = true; 
    $response['message'] = "Required fields are missing"; 
} 
} 

echo json_encode($response); 
?> 

registre:

<?php 

require_once '../includes/DbOperations.php'; 

$response = array(); 

if($_SERVER['REQUEST_METHOD']=='POST'){ 
if(
    isset($_POST['username']) and 
     isset($_POST['email']) and 
      isset($_POST['password'])) 
    { 
    //operate the data further 

    $db = new DbOperations(); 

    $result = $db->createUser( $_POST['username'], 
           $_POST['password'], 
           $_POST['email'] 
          ); 
    if($result == 1){ 
     $response['error'] = false; 
     $response['message'] = "User registered successfully"; 
    }elseif($result == 2){ 
     $response['error'] = true; 
     $response['message'] = "Some error occurred please try again";   
    }elseif($result == 0){ 
     $response['error'] = true; 
     $response['message'] = "It seems you are already registered, please choose a different email and username";      
    } 
}else{ 
    $response['error'] = true; 
    $response['message'] = "Required fields are missing"; 
} 
}else{ 
$response['error'] = true; 
$response['message'] = "Invalid Request"; 
} 

echo json_encode($response); 
+0

avez une autre réponse? –

Répondre

0

Ce que je fais dans une telle situation est stocker les emails ainsi que les données de l'utilisateur dans la base de données. Parallèlement à cela, je stocke également le nom d'utilisateur (Pour éviter la duplication dans le nom d'utilisateur). Donc, si l'utilisateur crée un nouveau compte, cette table/collection séparée est vérifiée si un tel identifiant existe. S'il existe, affichez simplement un message pour réinitialiser le mot de passe.