Bonjour,
Dans le cadre du développement d'une plateforme web, je souhaiterais integrer FaceBook à mon site grace au PHP SDK. Une fois les informations récupérées de FB, je souhaiterai les integrer à ma base de Donnée, afin de pouvoir s'authentifier grace à FaceBook. Seulement voila ,je bloque sur une petite fonction, Check_idFB().
Cette fonction à pour rôle de vérifier si l'utilisateur est déjà inscrit au site, la vérification se fait par une comparaison du nom du profil FB au nom/prénom contenu dans la base de donnée, si la vérification est positive, la fonction remplace la photo par la photo de profil FB et rempli le champ Facebook id de l'utilisateur. Si le vérification est négative, la fonction rajoute une entrée dans la table à partir des informations provenant de son profil fb (bon pour le mot de passe j'ai du improviser mais de toute façon ces utilisateurs ne se connecterons t qu'avec leur profil fb)
Du coup ca me fait une fonction assez lourde à gerer, et je pense que je m'emmele un peu les pinceaux avec cette fonction. La fonction prends plus de 10 secondes à etre parcourue et n'a aucun effet. Je sais qu'elle est mal codée voila pourquoi je m'en remet à vous afin de corriger mes défauts de programmations qui, mis bouts à bouts font qu'une fonction un tantinet complexe comme celle ci ne fonctionne pas du tout :
Les champs de la table membre de la base de données sont les suivants (dans cet ordre la) : :id, :nom,
renom, :login,
assword, :email, :mobile, :etat, :role, :ville, :facebook_id,
hoto
Enfin, concernant la photo, je me demande si cela n'est pas impossible de la stocker dans une bdd vu qu'elle provient d'une adresse https et que je ne peux la stocker que via la methode GET (voir ici http://fr.php.net/manual/fr/wrappers.http.php) or, selon le user guide du framework code igniter, "The security filtering function is called automatically when a new controller is invoked. It does the following:
Destroys the global GET array. Since CodeIgniter does not utilize GET strings, there is no reason to allow it."
(vous trouverez ca ici http://codeigniter.com/user_guide/libraries/input.html)
Mais bon c'est pas trop le sujet de ce topic, plutot de celui la : http://www.siteduzero.com/forum-83-709581-p1-comment-stocker-une-image-provenant-d-un-lien-externe.html#r6846129)
Voila, merci pour votre aide !
A tte
Dans le cadre du développement d'une plateforme web, je souhaiterais integrer FaceBook à mon site grace au PHP SDK. Une fois les informations récupérées de FB, je souhaiterai les integrer à ma base de Donnée, afin de pouvoir s'authentifier grace à FaceBook. Seulement voila ,je bloque sur une petite fonction, Check_idFB().
Cette fonction à pour rôle de vérifier si l'utilisateur est déjà inscrit au site, la vérification se fait par une comparaison du nom du profil FB au nom/prénom contenu dans la base de donnée, si la vérification est positive, la fonction remplace la photo par la photo de profil FB et rempli le champ Facebook id de l'utilisateur. Si le vérification est négative, la fonction rajoute une entrée dans la table à partir des informations provenant de son profil fb (bon pour le mot de passe j'ai du improviser mais de toute façon ces utilisateurs ne se connecterons t qu'avec leur profil fb)
Du coup ca me fait une fonction assez lourde à gerer, et je pense que je m'emmele un peu les pinceaux avec cette fonction. La fonction prends plus de 10 secondes à etre parcourue et n'a aucun effet. Je sais qu'elle est mal codée voila pourquoi je m'en remet à vous afin de corriger mes défauts de programmations qui, mis bouts à bouts font qu'une fonction un tantinet complexe comme celle ci ne fonctionne pas du tout :
Les champs de la table membre de la base de données sont les suivants (dans cet ordre la) : :id, :nom,



// check_idFB()
//
// Verification de l'id de l'utilisateur connecté et sauvegarde des infos utilisateur dans des variables de session
//lors d'une connection FACEBOOK CONNECT
public function check_idFB()
{
// on stocke les variables ici (chai pas si c'est vraiment très utile ..)
$prenom = $fb_data['me'];
$nom = $fb_data['nom'];
// Première requete qui va verifier si l'utilisateur est inscrit ou non
$requete = " SELECT *
FROM membre
WHERE nom ='".$login."'
AND prenom ='".$prenom."'
AND etat ='1'";
$data = array($login,$password);
$requete = $this->db->query($requete,$data);
if($requete->num_rows()> 0){ // Si il est inscrit alors :
$resultat = $requete->result();
//on initialise les variables de session
$session_data = array(
'id'=>$resultat[0] ->id,
'nom'=>$resultat[0] ->nom,
'prenom'=>$resultat[0] ->prenom,
'login'=>$resultat[0] ->login,
'password'=>$resultat[0] ->password,
'photo'=>$resultat[0] ->photo,
'role'=>$resultat[0] ->role,
'ville'=>$resultat[0] ->ville,
'etat'=>$resultat[0] ->etat,
'email'=>$resultat[0] ->email,
'mobile'=>$resultat[0] ->mobile,
'logged_in'=>true
);
$this->session->set_userdata($session_data);
return TRUE;
}elseif($requete->num_rows()== 0 AND ISSET ($fb_data['me'])){ // si il n'est pas inscrit on crée un nouvel utilisateur dans la abse de donnée
$requete = " INSERT INTO membre
VALUES (:id, :nom, [langue]renom, :login, [langue]assword, :email, :mobile, :etat, :role, :ville, :facebook_id, [langue]hoto) ";
//chai pas si ca marche ca la data array rentre la dedans ?
// ensuite verifier si :
// le $fb_data existe
// l'email fb
// choper l'id fb
// la ville actuelle
// la photo
// Changer tout pour que ce soit l'id fb qui soit comparé pour trouver kk1 ? ouha ptetre pas en fait ..
// verifier que les 2 lignes soient bien dans tous les controlleurs
//Une fois que ca marche, faire en sorte que la connexion fb pop up dans un overlay
//s'attaquer aux comments
$data = array(
'nom'=>$fb_data['me']['nom'],
'prenom'=>$fb_data['me']['nom'],
'login'=>$fb_data['me']['nom'],
'password'=>"facebook",
'email'=>$fb_data['me']['email'],
'mobile'=>"00",
'etat'=>"1",
'role'=>"1",
'ville'=>"ville actuelle",
'facebook_id'=>$fb_data['uid'],
'photo'=>"", // Pour la photo je cherche encore comment faire
);
$requete = $this->db->query($requete,$data);
$resultat = $requete->result();
// on initialise les variables de session
$session_data = array(
'id'=>$resultat[0] ->id,
'nom'=>$resultat[0] ->nom,
'prenom'=>$resultat[0] ->prenom,
'login'=>$resultat[0] ->login,
'password'=>$resultat[0] ->password,
'photo'=>$resultat[0] ->photo,
'role'=>$resultat[0] ->role,
'ville'=>$resultat[0] ->ville,
'etat'=>$resultat[0] ->etat,
'email'=>$resultat[0] ->email,
'mobile'=>$resultat[0] ->mobile,
'logged_in'=>true
);
$this->session->set_userdata($session_data);
return TRUE;
}else{}
}
//Fin
//-------------------------------------------------------------------
Enfin, concernant la photo, je me demande si cela n'est pas impossible de la stocker dans une bdd vu qu'elle provient d'une adresse https et que je ne peux la stocker que via la methode GET (voir ici http://fr.php.net/manual/fr/wrappers.http.php) or, selon le user guide du framework code igniter, "The security filtering function is called automatically when a new controller is invoked. It does the following:
Destroys the global GET array. Since CodeIgniter does not utilize GET strings, there is no reason to allow it."
(vous trouverez ca ici http://codeigniter.com/user_guide/libraries/input.html)
Mais bon c'est pas trop le sujet de ce topic, plutot de celui la : http://www.siteduzero.com/forum-83-709581-p1-comment-stocker-une-image-provenant-d-un-lien-externe.html#r6846129)
Voila, merci pour votre aide !
A tte