michmuch51 Posté 8 Juin 2016 Posté 8 Juin 2016 salut le Hub, ça fait un sacré moment que je ne suis passé dans le coin il s'est tellement passé de choses depuis... enfin bref... Je viens vers vous car je suis à la recherche d'une solution simple et légère me permettant de faire le lien entre une communauté présente sur un forum IP.Board 3.4.7 et un shop utilisant prestashop 1.6.1.4. dans la version ipb que j'ai il y a une chose que je souhaite creuser c'est le gestionnaire de connexion présent dans outils et paramètres. je retrouve dedans : IPB Converter Logins Auth Module for Converted Boards with Different Password Systems ACTIVÉ IPB Converter Logins Auth Module for Converted Boards with Different Password Systems ACTIVÉ IPB Internal The standard method of authentication ACTIVÉ LDAP Authentication LDAP / Active Directory Authentication Désactivé External Database Authentication via an external database Désactivé IPS Connect je me demandais si il n'était pas possible d'utiliser le formulaire de connexion prestashop pour se connecter au forum ou vice et versa avec un de ces modules. je suis venu poster ici pour que vous puissiez m'orienter sur une piste sachant que le Hub tourne sous IPB depuis la nuit des temps - n'est-ce pas Dan J'espère que certains d'entre vous auront déjà eu ce type de chose à faire car hélas sur le web j'ai bien creusé et autant il est facile de trouver le nécessaire pour lier prestashop à phpbb autant prestashop à IPB c'est plus dur à trouver !
Dan Posté 8 Juin 2016 Posté 8 Juin 2016 Bonjour, Et oui, le Hub tourne IPB depuis le 18 août 2003 ... bientôt 13 ans ! Tu peux utiliser l'authentification par base de données externe. Comme on est passé à IPB 4.x depuis bien longtemps, je n'ai plus de forum sous IPB 3.x pour te dire où aller régler cela.
michmuch51 Posté 8 Juin 2016 Auteur Posté 8 Juin 2016 oui j'avais retrouvé un petit bout de code pour récupérer si le membre sortant du forum est identifié ou non avec son e-mail et le reste : <?php require_once( $_SERVER['DOCUMENT_ROOT'].'/initdata.php' ); require_once( $_SERVER['DOCUMENT_ROOT'].'rep-admin-ici/sources/base/ipsRegistry.php' ); $registry = ipsRegistry::instance(); $registry->init(); $member = $registry->member()->fetchMemberData(); if ( $member['member_id'] ) { print_r($member); } else { echo "You're not logged in."; } ?> je pensais peut être par la suite lancer un script pour l'authentifier automatiquement sur presta si il est identifié sur ipb en fonction de le réponse donné à ce code... si je pars sur ce chemin je ne me sers pas des modules existant d'ipb en natif du coup ce sera peut être un peu plus lourd... bon je vais creuser.
SStephane Posté 9 Juin 2016 Posté 9 Juin 2016 IPB et prestashop ne peuvent pas se connecter à un SSO ?
michmuch51 Posté 10 Juin 2016 Auteur Posté 10 Juin 2016 (modifié) Si, justement mon cher SStephane j'en suis là je n'ai pas encore résolu mon problème mais je creuse du côté de IPS connect. Sur cette page il y ajustement un exemple de script où ipb est master et l'autre esclave. j'ai donc bien joué avec le script esclave d'exemple donné sur la page cet après midi qui tourne à merveille mais hélas maintenant il faut que j'adapte le truc à Prestashop.... entre temps j'ai même installé ce petit module wordpress dans lequel le forum est en esclave. J'ai donc bien mon wordpress sur le même site qui fonctionne en esclave et c'est vraiment bien fait, mais je dois m'attaquer à prestashop et j'avoue que l'histoire des cookies me fait un peu peur. Mes connaissances en php sont un peu limités pour aller sur des terrains aussi complexes je pense que tout doit se jouer sur le fichier include présent dans l'exemple : //----------------------------------------- // Connect to database //----------------------------------------- require_once 'config.php'; $db = new mysqli( $databaseHost, $databaseUsername, $databasePassword, $databaseDatabase ); //----------------------------------------- // Are we logged in? //----------------------------------------- $loggedIn = NULL; // Only do this if the user has not expressly logged out of the IPS Connect Network if ( !isset( $_COOKIE[ 'ipsconnect_' . md5( $masterUrl ) ] ) or $_COOKIE[ 'ipsconnect_' . md5( $masterUrl ) ] ) { // Check local cookies if ( isset( $_COOKIE['ipsce_user'] ) ) { if ( $user = $db->query( "SELECT * FROM members WHERE username='". $db->escape_string( $_COOKIE['ipsce_user'] ) ."'" )->fetch_array() ) { if ( $user['password'] == $_COOKIE['ipsce_pass'] ) { $loggedIn = $user['username']; } } } // Check IPS Connect if ( $loggedIn === NULL and isset( $_COOKIE[ 'ipsconnect_' . md5( $masterUrl ) ] ) and $_COOKIE[ 'ipsconnect_' . md5( $masterUrl ) ] ) { $check = file_get_contents( $masterUrl . '?' . http_build_query( array( 'act' => 'cookies', 'data' => json_encode( $_COOKIE ) ) ) ); if ( $check = @json_decode( $check, TRUE ) and $check['connect_status'] == 'SUCCESS' ) { // Load local member if ( $user = $db->query( "SELECT * FROM members WHERE connect_id=". intval( $check['connect_id'] ) )->fetch_array() ) { // Update local member if ( $user['username'] != $check['connect_username'] or $user['email'] != $check['connect_email'] ) { $db->query( "UPDATE members SET username='". $db->escape_string( $check['connect_username'] ) ."', email='". $db->escape_string( $check['connect_email'] ) ."' WHERE connect_id=". intval( $check['connect_id'] ) .";" ); } } else { // Create local member $db->query( "INSERT INTO members ( username, email, password, connect_id ) VALUES ( '". $db->escape_string( $check['connect_username'] ) ."', '". $db->escape_string( $check['connect_email'] ) ."', '". md5( rand( 1, 10000 ) ) ."', ". intval( $check['connect_id'] ) ." )" ); $user = $db->query( "SELECT * FROM members WHERE connect_id=". intval( $check['connect_id'] ) )->fetch_array(); } // Log in setcookie( 'ipsce_user', $user['username'], time()+60*60*24*30 ); setcookie( 'ipsce_pass', $user['password'], time()+60*60*24*30 ); $loggedIn = $user['username']; } } } j'ai un petit peu peur d'y passer un certain temps slave.zip Modifié 10 Juin 2016 par michmuch51 ajout de slave.zip pour illustrer mes propos
xtinah036 Posté 11 Octobre 2016 Posté 11 Octobre 2016 (modifié) Le 08/06/2016 at 16:48, Dan a dit : Bonjour, Et oui, le Hub tourne IPB depuis le 18 août 2003 ... bientôt 13 ans ! Tu peux utiliser l'authentification par base de données externe. Comme on est passé à IPB 4.x depuis bien longtemps, je n'ai plus de forum sous IPB 3.x pour te dire où aller régler cela. bonjour! comment resoud t on un problème de virus s'il vous plait, mon PC il ram beaucoup et fait des écrans bleu. merci!! Modifié 11 Octobre 2016 par Arlette Suppression du lien spammeur !
Arlette Posté 11 Octobre 2016 Posté 11 Octobre 2016 Bonjour, On met son anti-virus à jour et on évite de citer dans anciens posts juste pour mettre un lien vers le site que l'on souhaite mettre en avant. Cette pratique est vieille comme le web et ça se voit comme le nez au milieu de la figure.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant