Connectix Boards

Bienvenue, vous n'êtes pas connecté. ( Se connecter - S'enregistrer )

Dernière version sortie: 0.8.4!
Venez tester la version 1.0 beta :)

RSS >  Adapter le forum à mon site
Snipy #1 25/08/2010 - 12h27

Groupe : Nouveau
Messages : 21
Enregistré le : 02/05/2008

Hors ligne

Bonjour à tous,

Je souhaiterais adapter le forum à mon site.
Et donc utiliser en quelque sorte les sessions de mon site et la table membres de mon site.

il y aura donc la table membres de mon site et la table users de CB, elles seront rempli en meme temps et donc auront le même id qui correspondra au meme membre

Mon soucis est de faire en sorte que si le membre est connecté sur mon site, si il va sur le forum, il sera toujours connecté (mais cette fois ci sur le foum).

pour cela j'aimerais savoir ou placer dans le code du forum

if(isset($_SESSION['logged'])) // vaut true si le membre est connecté
{

QUOI METTRE ICI POUR QUE LE MEMBRE SOIT CONNECTE AU FORUM AUSSI
}
else
{
IL EST PAS CONNECTE
}


sachant qu'avec $_SESSION[id'] j'ai l'id du membre (qui est celui aussi dans la table users)


j'ai vu que dans le common, pour la mise en session ça appelait la classe user, donc je pense que c'est dans ce fichier non? si oui, que dois je mettre dans les accolades ?

Merci d'avance de votre aide !
Ce message a été édité par Snipy le 25/08/2010 à 12h28.
Martin #2 29/08/2010 - 22h31

Groupe : Administrateur
Messages : 3657
Enregistré le : 01/02/2005

Hors ligne Site Web

Est-ce que c'est un site en construction ou un site déjà opérationnel? Dans le premier cas, je déconseillerais de faire deux tables contenant les mêmes infos.
Posted Image
« Entre une mauvaise cuisinière et une empoisonneuse il n'y a qu'une différence d'intention. » - P. Desproges
Snipy #3 30/08/2010 - 23h53

Groupe : Nouveau
Messages : 21
Enregistré le : 02/05/2008

Hors ligne

Disons, presque opérationnel,
Et donc déja beaucoup de scripts utilise ma table "membres" propre a mon site...

Je suis d'accord qu'avoir  2 tables aux infos redondante est vraiment pas top...
Mais actuellement j'aimerais continuer a mettre mon temps sur le développement et non l'adaptation.

Donc penses tu que se soit possible d'adapter au plus simple les 2 ?
Car c'ets vrai que le forum connectix board me tente vraiment, et donc pouvoir l'adapter serait le top :D
Ce message a été édité par Snipy le 30/08/2010 à 23h54.
Ishimaru Chiaki #4 31/08/2010 - 10h32

Groupe : Doc-rédacteur
Messages : 800
Enregistré le : 12/03/2008

Hors ligne Site Web

Ça dépend encore de ce que tu stockes comme données dans ta table membres personnalisée, car si t'as des infos qui reviennent sur les deux tables membres, ça ne fait que faciliter l'adaptation.

Aussi, si les tables du site et celles du forum sont sur la même BDD, ce sera encore mieux.
Besoin de volontaires pour les tests du support IPv6 dans la future version 0.8.5 !
Plus d'informations ici

Mon fil Twitter
kristoch #5 31/08/2010 - 12h45

Groupe : Acharné
Messages : 342
Enregistré le : 05/08/2009

Hors ligne Site Web

tes tables peuvent cohabiter ensembles au même endroit, rien ne l'interdit!
tu y vas chercher ou non et si tu veux, ce que tu veux et donc tant ton site que ton forum peuvent utiliser une partie des données commune!

il y a des choses qu'on fait sur un site ou forum en se passant de table(s) et à contrario il y a des tables qui ne servent jamais ou des champs crées et non utilisés, parfois plus du tout utilisés car servant à des add-on enlevés depuis...

dans tous les cas ça ne gêne pas le fonctionnement de la BDD.
une même table peut servir pour le site et le forum, en tout ou partie.
un de mes blogs : chachacha
Snipy #6 31/08/2010 - 23h38

Groupe : Nouveau
Messages : 21
Enregistré le : 02/05/2008

Hors ligne

Donc, pour répondre à vos questions,
les 2 (site et forum) sont stocké sur la meme base de données,
et dans ma table membres, les champs redondant avec la table users du forum sont : id, pseudo, password, et derniere connection en gros :D

Il y aura aussi le truc de confirmation, mais comme je pense que l'inscription ne se fera pas sur le forum mais se fera sur le site, dans la table users du forum il ne servira pas ce champ.

Actuellement ce que j'ai fait, c'est que lorsque le membre s'inscrit sur mon site, une entrée est créé dans ma table membres et une autre entrée est créé cette fois si dans la table users (du forum) avec évidemment les meme infos, c'est a dire meme pseudo, id et password

Vos avis ? :D
Snipy #7 05/09/2010 - 17h36

Groupe : Nouveau
Messages : 21
Enregistré le : 02/05/2008

Hors ligne

Il n'y a plus personne sur le forum ? :s
Rio #8 05/09/2010 - 18h32

Groupe : Nouveau
Messages : 33
Enregistré le : 02/12/2007

Hors ligne Site Web

J'utilise également 2 tables de membres (une pour le site en plus de celle du forum) sans que ca pose problème ...
La connection, l'inscription et tout ce qui touche à la gestion du compte (renouvellement de mot de passe, changement d'adresse mail ou de pseudo, ...) se fait par le biais du forum.
Tout ce qui touche aux fonctionnalités se fait avec la base membre du site car ca n'a rien à voir avec le forum et la structure de ses tables.
Je vois pas trop l'interêt de modifier la table des membres du forum pour ce qui touche au site (surtout qu'il faut adapter/vérifier toutes ces customisations en cas de mise à jour du forum par la suite).
Snipy #9 06/09/2010 - 17h02

Groupe : Nouveau
Messages : 21
Enregistré le : 02/05/2008

Hors ligne

Je vois, et dans ce cas la comment fait tu pour que si le membre est connecté via la connexion du forum, il soit aussi connecté sur ton site ?
Martin #10 06/09/2010 - 17h33

Groupe : Administrateur
Messages : 3657
Enregistré le : 01/02/2005

Hors ligne Site Web

Il suffit de suivre ce qui est indiqué dans ce doc:
http://www.connectix-boards.org/index.php?page=doc&sect=12

Une fois connecté au forum, si tu insères les deux lignes au début de toutes tes pages, il sera aussi connecté au site.
Fais juste un petit check au niveau de la racine des cookies (admin) afin que dans ton site, les cookies du forum soient reconnus.

Il y a l'un ou l'autre article de la doc qui t'expliquent comment utiliser l'objet 'user' du forum ou comment faire un formulaire de connexion sur ton site pour l'espace membres commun.
Ce message a été édité par Martin le 06/09/2010 à 17h34.
Posted Image
« Entre une mauvaise cuisinière et une empoisonneuse il n'y a qu'une différence d'intention. » - P. Desproges
Snipy #11 29/09/2010 - 11h47

Groupe : Nouveau
Messages : 21
Enregistré le : 02/05/2008

Hors ligne

Hey !

Me revoila, c'est bon je me lance dnas l'aventure de CB !
Bien, que j'avoue que j'ai un peu peur qu'il n'y ait que peu de support (en vue de l'activité du forum) mais je vous fais confiance.

Je suis donc en train d'adapter le forum a mon site, et pour l'inscription, je vais me baser sur celle de CB, et évidemment lors de cette inscription j'ai besoin d'inserer des données sur le membre d'en d'autres tables que USERS.
Mon petit soucis c'est que sur la page parts.register, je vois que :

    if (sendMail($_POST['email1'],str_replace('{--mail_forumname--}',$GLOBALS['cb_cfg']->config['forumname'],$GLOBALS['cb_cfg']->config['mailsubject_ci']),$mailmsg)) {
                                                        $GLOBALS['cb_db']->query('INSERT INTO '.$GLOBALS['cb_db']->prefix.'users(usr_name,usr_password,usr_registered,usr_registertime,usr_email,usr_ip) VALUES(\''.clean($_POST['username']).'\',\''.cbHash($_POST['password1']).'\',\''.$registration.'\','.time().',\''.clean($_POST['email1']).'\','.ip2long($_SERVER['REMOTE_ADDR']).')');
                                                        $iduser=$GLOBALS['cb_db']->insert_id();
                                                        setUserPostClass($iduser);
                                                        trigger_error(lang('reg_success_mail'),E_USER_NOTICE);
                                                        $needform=false;
                                                    } else trigger_error(lang('error_sendmail'),E_USER_WARNING);
                            } else {
                                                    $GLOBALS['cb_db']->query('INSERT INTO '.$GLOBALS['cb_db']->prefix.'users(usr_name,usr_password,usr_registered,usr_registertime,usr_email,usr_ip) VALUES(\''.clean($_POST['username']).'\',\''.cbHash($_POST['password1']).'\',\'TRUE\','.time().',\''.clean($_POST['email1']).'\','.ip2long($_SERVER['REMOTE_ADDR']).')');
                                                    $iduser=$GLOBALS['cb_db']->insert_id();
                                                    setUserPostClass($iduser);
                                                    $GLOBALS['cb_db']->query('UPDATE '.$GLOBALS['cb_db']->prefix.'stats SET st_value=st_value+1 WHERE st_field=\'registered_users\'');
                                                    trigger_error(lang('reg_success_nomail'),E_USER_NOTICE);
                                               

    $needform=false;


Ma question est : je dois mettre mes autres requetes dans la condition intiale ou dans le else ? OU dans les 2
A quoi correpsond le else ? c'est si le mail n'a pas pu partir ? Dans ce cas que se passe il ?


Merci beaucoup de vos réponses, :D

Bonne journée !
Snipy #12 29/09/2010 - 15h43

Groupe : Nouveau
Messages : 21
Enregistré le : 02/05/2008

Hors ligne

J'en profite pour poser la suite de ma question,
Je veux donc pendant l'inscription rajouter d'autres information qui seront a placer dans une table qui n'appartient pas a CB (masi qui se trouve dans la meme base de données.
La table s'appelle équipe,

j'ai vu que la strucutre actuelle des requete est comme ceci :

$GLOBALS['cb_db']->query('INSERT INTO '.$GLOBALS['cb_db']->prefix.'users(usr_name,usr_password,usr_registered,usr_registertime,usr_email,usr_ip) VALUES(\''.clean($_POST['username']).'\',\''.cbHash($_POST['password1']).'\',\''.$registration.'\','.time().',\''.clean($_POST['email1']).'\','.ip2long($_SERVER['REMOTE_ADDR']).')');


(sachant que ma table n'a pas de préfixe),

j'ai besoin d'effectuer ceci :

   
// On cherche une équipe bot
$sql = $bdd->query("SELECT id_equipe FROM equipes WHERE bot = 1 ") or die(print_r($bdd->errorInfo()));


//Si il y a une équipe bot alors on peut préparer l'équipe
if($result = $sql->fetch())
{
// On modifie toutes les données pour cette nouvelle équipe
$sql = $bdd->prepare("UPDATE equipes SET membre_id = :idmembre,  nom = :equipe, nom_stade= :stade, logo='',  places_assises=1500, places_vip=50, entrainement=0, adjoints =0, medecins=0, kines =0,  attaches =0, chasseurs =0,stats =2, eplucheurs =0, bot =0  
WHERE id_equipe= :idequipe")or die(print_r($bdd->errorInfo()));
$sql->execute(array('idmembre' =>$id_membre,
'equipe' => $equipe,
'stade' =>$stade,
'idequipe' =>$result['id_equipe'])) or die(print_r($sql->errorInfo()));
$sql->closeCursor();

Comment dois je donc la retranscrire pour que la requete fonctionne dans la page part.register

Merci d'avance :!
Ce message a été édité par Snipy le 30/09/2010 à 15h38.
Martin #13 16/10/2010 - 22h14

Groupe : Administrateur
Messages : 3657
Enregistré le : 01/02/2005

Hors ligne Site Web

En effet, le else correspond à un email qui n'est pas parti. Dans ce cas, l'utilisateur est validé d'office (car il doit y avoir une erreur du coté serveur).

Tu trouveras l'id du membre dans $iduser.

Tu dois mettre ton code à la suite du if-else.

Si tu es patient, attends la 1.0 pour laquelle ce code a été revu.
Posted Image
« Entre une mauvaise cuisinière et une empoisonneuse il n'y a qu'une différence d'intention. » - P. Desproges

 >  Réponse rapide

Composez votre message

 >  Informations du forum

1 personne(s) présente(s) durant une période de 15 minutes (0 membre(s) et 1 invité(s)).