Installer RPX sur phpboost
nico2a Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre nico2a
- Inscrit le : 21/03/2010
mon code :
Code PHP :
<?php // Ici, un script basique pour recevoir les données des fournisseurs (requiert PHP 5 ou plus) // Vous devez avoir installé CURL HTTP fetching library $JanRainApiKey = 'APIKEY'; if(isset($_POST['token'])) { // Si l'utilisateur tente de se connecter avec JanRain /* ÉTAPE 1 : récupérer le paramètre token */ $token = $_POST['token']; /* ÉTAPE 2 : utiliser le token pour envoyer une requête vers le serveur de JanRain, qui interrogera à son tour le fournisseur */ $post_data = array('token' => $_POST['token'], 'apiKey' => $JanRainApiKey, 'format' => 'json'); $curl = curl_init(); // Initialisation curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Retourne le résultat du transfert au lieu de l'afficher curl_setopt($curl, CURLOPT_URL, 'https://rpxnow.com/api/v2/auth_info'); // On définit l'URL cible à récupérer curl_setopt($curl, CURLOPT_POST, true); // On dit à PHP de faire un HTTP POST (comme pour les formulaires) curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); // Données à fournir par HTTP POST curl_setopt($curl, CURLOPT_HEADER, false); // On dit de ne pas renvoyer l'en-tête dans la valeur de retour curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // On ne vérifie pas le certificat SSL $raw_json = curl_exec($curl); // On exécute la requête curl_close($curl); // On ferme la connexion /* ÉTAPE 3 : décoder la réponse Json */ $auth_info = json_decode($raw_json, true); if ($auth_info['stat'] == 'ok') { // Si tout est OK /* ÉTAPE 4 : récupérer les infos à partir de la réponse */ $profile = $auth_info['profile']; // Les infos sur le membre $identifier = $profile['identifier']; // Le lien if (isset($profile['photo'])) { // Avatar $photo_url = $profile['photo']; } if (isset($profile['displayName'])) { // Nom à afficher $name = $profile['displayName']; } if (isset($profile['email'])) { // E-mail $email = $profile['email']; } session_start(); // On démarre les sessions // Connexion à la BDD $PARAM_hote=''; // Le chemin vers le serveur $PARAM_nom_bd=''; // Le nom de votre base de données $PARAM_utilisateur=''; // Nom d'utilisateur pour se connecter $PARAM_mot_passe=''; // Mot de passe de l'utilisateur pour se connecter try { $connexion = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe); } catch(Exception $e) { echo 'Erreur : '.$e->getMessage().' '; echo 'N° : '.$e->getCode(); } $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); // Lance une alerte à chaque requête échouée // On compte le nombre de membres ayant pour identifier celui retourné par JanRain $nombreResulat = $connexion->query('SELECT COUNT(*) FROM phpboost_member WHERE identifier = ''.$identifier.''')->fetchColumn(); if ($nombreResulat == 1) { // S'il y a un résultat $query = $connexion->query('SELECT login, user_id FROM phpboost_member WHERE identifier = ''.$identifier.'''); $donnees = $query->fetch(PDO::FETCH_ASSOC); // On met en forme la réponse de la BDD $_SESSION['login'] = $donnees['login']; $_SESSION['user_id'] = $donnees['user_id']; // On identifie le membre $message = '<p>Bienvenue '.htmlspecialchars($donnees['login']).', vous êtes maintenant connecté !</p> <p><a href="./index.php">Cliquez ici</a> pour revenir à la page d'accueil</p>'; // Message } elseif (isset($email)) { // On compte le nombre de membres ayant pour e-mail celui retourné par JanRain $nombreResulat = $connexion->query('SELECT COUNT(*) FROM phpboost_member WHERE user_mail = ''.$email.''')->fetchColumn(); if ($nombreResulat == 1) { // S'il y a un résultat $query = $connexion->query('SELECT id, pseudo FROM phpboost_member WHERE user_mail = ''.$email.'''); $donnees = $query->fetch(PDO::FETCH_ASSOC); $message = '<p>Vous pouvez vous connecter avec un compte externe en cliquant seulement sur un bouton ! Seulement, êtes-vous bien <strong>'.$donnees['login'].'</strong> ? Cette question ne vous sera plus posée à l'avenir.</p> <form action="?JanRain_lier"> <input type="hidden" name="token" value="'.$token.'"/> <input type="submit" value="Oui"/> <a href="./connexion.php"><input type="button" value="Non"/></a> </form>'; } else { // S'il n'y a pas de résultat $message = '<p>Vous pouvez vous connecter avec un compte externe en cliquant seulement sur un bouton ! Seulement, nous vous demandons de vous connecter avec votre compte sur ce site. Cette question ne vous sera plus posée à l'avenir.</p> <form action="?JanRain_lier" method="post"> <input type="text" name="pseudo"/> <input type="password" name="password"/> <input type="hidden" name="token" value="'.$token.'"/> <input type="submit" value="Valider"/> </form>'; // Formulaire de connexion } } else { // S'il n'y a pas d'e-mail $message = '<p>Vous pouvez vous connecter avec un compte externe en cliquant seulement sur un bouton ! Seulement, nous vous demandons de vous connecter avec votre compte sur ce site. Cette question ne vous sera plus posée à l'avenir.</p> <form action="?JanRain_lier" method="post"> <input type="text" name="pseudo"/> <input type="password" name="password"/> <input type="hidden" name="token" value="'.$token.'"/> <input type="submit" value="Valider"/> </form>'; // Formulaire de connexion } if (isset($_GET['JanRain_lier'])) { // Si on demande de lier un compte if (isset($_SESSION['user_id'])) { // Si le membre s'est connecté $query = $connexion->prepare('UPDATE phpboost_member SET identifier = ? WHERE user_id = ?'); // On change l'identifier du membre de la BDD $req->execute(array($identifier, $_SESSION['user_id'])); echo '<p>Le compte a bien été lié. Vous n'avez qu'à cliquer sur un bouton pour vous connecter !</p>'; // Message } else { // Sinon, il n'est pas connecté $query = $connexion->prepare('UPDATE phpboost_member SET identifier = ? WHERE user_mail = ?'); // On modifie la table $req->execute(array($identifier, $email)); $query = $connexion->query('SELECT user_id, login FROM phpboost_member WHERE user_mail = ''.$email.'''); // On récupère les données concernant le membre $donnees = $query->fetch(PDO::FETCH_ASSOC); $_SESSION['login'] = $donnees['login']; // On connecte le membre $_SESSION['user_id'] = $donnees['user_id']; $message = '<p>Le compte a bien été lié. Vous n'avez qu'à cliquer sur un bouton pour vous connecter !</p>'; // Message } } } else { /* Une erreur est survenue */ // On affiche l'erreur echo 'Une erreur est survenue : ' . $auth_info['err']['msg']; } } echo $message; ?>
donc comme vous le voyer moi j'ai fait un truc avec les session mais je sais pas comment l'adapté a phpboost pour que le membre soit connecter
Pouvez-vous m'aider ?

horn Membre non connecté
-
Modérateur
- Voir le profil du membre horn
- Inscrit le : 31/12/2007
- Site internet
- Groupes :
-
Equipe Historique
Il faudra donc attendre que CrowkaiT ou ben.popeye passe par là, je ne sais pas quand ils pourront parce que personnellement, je ne sais pas à partir de quand je pourrais avoir internet à mon nouvel appartement.
Bonne journée quand même
Soyez polis, pas de langage SMS et soignez votre orthographe, merci.
JC Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre JC
- Inscrit le : 31/01/2008
- Groupes :
il y a un topic la dessus et il s'occupe tout seul de la gestion de la connexion à la bdd et aux sessions
Sincères salutations,
Le JC
Le JC
nico2a Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre nico2a
- Inscrit le : 21/03/2010
JC Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre JC
- Inscrit le : 31/01/2008
- Groupes :
Essai ca : http://www.phpboost.com/wiki/creer-une-page-en-chargeant-l-environnement-de-phpboost-v3
Sincères salutations,
Le JC
Le JC
nico2a Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre nico2a
- Inscrit le : 21/03/2010
Avertissement : Missing argument 3 for Sql::query(), called in /home/echecscl/public_html/connexionjanrain.php on line 60 and defined dans le fichier /home/echecscl/public_html/kernel/framework/db/mysql.class.php à la ligne 156
Fatal error: Call to a member function fetchColumn() on a non-object in /home/echecscl/public_html/connexionjanrain.php on line 60
ligne 60 : $nombreResulat = $Sql->query('SELECT COUNT(*) FROM phpboost_member WHERE identifier = ''.$identifier.''')->fetchColumn();
Édité par nico2a Le 27/07/2010 à 18h49
JC Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre JC
- Inscrit le : 31/01/2008
- Groupes :
Faut que tu attende un peu que quelqu'un d'autre passe et te dise ce qu'il faut faire
Sincères salutations,
Le JC
Le JC
nico2a Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre nico2a
- Inscrit le : 21/03/2010
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Cela t'aidera peut-être à avancer.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
nico2a Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre nico2a
- Inscrit le : 21/03/2010
if( pass = md5 and pseudo)
{ vous ete co
$_session = data[id]
}
ect..
comment ca fonctionne sur phpboost ?
Édité par nico2a Le 27/07/2010 à 19h45
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Si j'ai bien compris le système que tu veux intégrer c'est un système de <acronym title="Single Sign On" class="bb_acronym">SSO</acronym>. Si tel est le cas, l'intégration va être complexe car à l'heure actuelle PHPBoost n'est pas fait pour cela.
Pour voir si c'est possible, tu peux présenter un peu plus précisément ce que tu cherches à mettre en place ?
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
nico2a Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre nico2a
- Inscrit le : 21/03/2010
pour pouvoir se connecter via facebook google ect...
pour l'inscription au site via le rpx j'ai réussie mais le connexion me pose un problème car j'arrive pas a faire que le membre s'inscrit via RPX et il se connecte sur phpboost via facebook par le RPX
( dsl pour l'explication je ne sais pas trop comment l'expliqué)
Édité par nico2a Le 27/07/2010 à 20h41
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
nico2a Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre nico2a
- Inscrit le : 21/03/2010
voici le code qui crée l'utilisateur s'il n'existe pas :
Code PHP :
<?php // Ici, un script basique pour recevoir les données des fournisseurs (requiert PHP 5 ou plus) // Vous devez avoir installé CURL HTTP fetching library $JanRainApiKey = 'cleapi'; if(isset($_POST['token'])) { // Si l'utilisateur tente de se connecter avec JanRain /* ÉTAPE 1 : récupérer le paramètre token */ $token = $_POST['token']; /* ÉTAPE 2 : utiliser le token pour envoyer une requête vers le serveur de JanRain, qui interrogera à son tour le fournisseur */ $post_data = array('token' => $_POST['token'], 'apiKey' => $JanRainApiKey, 'format' => 'json'); $curl = curl_init(); // Initialisation curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Retourne le résultat du transfert au lieu de l'afficher curl_setopt($curl, CURLOPT_URL, 'https://rpxnow.com/api/v2/auth_info'); // On définit l'URL cible à récupérer curl_setopt($curl, CURLOPT_POST, true); // On dit à PHP de faire un HTTP POST (comme pour les formulaires) curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); // Données à fournir par HTTP POST curl_setopt($curl, CURLOPT_HEADER, false); // On dit de ne pas renvoyer l'en-tête dans la valeur de retour curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // On ne vérifie pas le certificat SSL $raw_json = curl_exec($curl); // On exécute la requête curl_close($curl); // On ferme la connexion /* ÉTAPE 3 : décoder la réponse Json */ $auth_info = json_decode($raw_json, true); if ($auth_info['stat'] == 'ok') { // Si tout est OK /* ÉTAPE 4 : récupérer les infos à partir de la réponse */ $profile = $auth_info['profile']; // Les infos sur le membre $identifier = $profile['identifier']; // Le lien if (isset($profile['photo'])) { // Avatar $photo_url = $profile['photo']; } if (isset($profile['displayName'])) { // Nom à afficher $name = $profile['displayName']; } if (isset($profile['email'])) { // E-mail $email = $profile['email']; } session_start(); // On démarre les sessions // Connexion à la BDD $PARAM_hote='localhost'; // Le chemin vers le serveur $PARAM_nom_bd=''; // Le nom de votre base de données $PARAM_utilisateur=''; // Nom d'utilisateur pour se connecter $PARAM_mot_passe=''; // Mot de passe de l'utilisateur pour se connecter try { $connexion = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe); } catch(Exception $e) { echo 'Erreur : '.$e->getMessage().' '; echo 'N° : '.$e->getCode(); } $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); // Lance une alerte à chaque requête échouée $nombreResultats = $connexion->query('SELECT COUNT(*) FROM phpboost_member WHERE identifier = ''.$identifier.''')->fetchColumn(); // On vérifie si le visiteur n'est pas déjà inscrit if ($nombreResultats == 1) { $message = '<p>Vous êtes déjà inscrit !</p><form action="connexionjanrain.php" method="post"><input type="hidden" name="token" value="'.$token.'"/><input type="submit" value="Me connecter"/></form>'; // Message } else { if ((isset($name) OR isset($_POST['login'])) AND (isset($email) OR isset($_POST['email']))) { // Si on a toutes les infos $nombreResultats = $connexion->query('SELECT COUNT(*) FROM phpboost_member WHERE user_mail = ''.$email.''')->fetchColumn(); // On vérifie si un membre n'a pas cet e-mail if ($nombreResultats == 1) { $query = $connexion->query('SELECT user_id, login FROM phpboost_member WHERE user_mail = ''.$email.'''); $donnees = $query->fetch(PDO::FETCH_ASSOC); $message = '<p>Vous pouvez vous connecter avec un compte externe en cliquant seulement sur un bouton ! Seulement, êtes-vous bien <strong>'.$donnees['login'].'</strong> ? Cette question ne vous sera plus posée à l'avenir.</p> <form action="connexionjanrain.php?JanRain_lier"> <input type="hidden" name="token" value="'.$token.'"/> <input type="submit" value="Oui"/> <a href="./connexion.php"><input type="button" value="Non"/></a> </form>'; // Message } else { if (isset($_POST['login'])) $name = $_POST['login']; if (isset($_POST['email'])) $email = $_POST['email']; $query = $connexion->prepare('INSERT INTO phpboost_member (user_id,login,user_mail,identifier) VALUES ('',?,?,?)'); // On enregistre les infos $query->execute(array($name, $email, $identifier)); $_SESSION['login'] = $donnees['login']; // On connecte le membre $_SESSION['user_id'] = $donnees['user_id']; $message = '<p>Vous avez bien été inscrit ! <a href="./index.php">Cliquez ici</a> pour revenir à la page d'accueil</p>'; // Message } } else { // Pas assez d'infos : on les demande if (!isset($name)) $name = ''; if (!isset($email)) $email = ''; $message = '<p>Veuillez renseigner les champs ci-dessous pour vous inscrire :</p> <form action="inscriptionjanrain.php" method="post"> <input type="hidden" name="token" value="'.$token.'"/> Pseudo : <input type="text" name="login" value="'.$name.'"/> E-mail : <input type="text" name="email" value="'.$email.'"/> <input type="submit" value="M'inscrire !"/> </form>'; } } } else { /* Une erreur est survenue */ // On affiche l'erreur echo 'Une erreur est survenue : ' . $auth_info['err']['msg']; } } echo $message; ?>
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie