MyBB.support, le portail francophone de MyBB

Version complète : Se connecter/déconnecter à partir d'une page web.
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Si vous avez un site et voulez avoir du contenu pour les membres connectés de votre forum ou seulement leur permettre de se connecter sur votre page principale, ce tutoriel est pour vous.

*** Important : Ce tutoriel ne fonctionnera pas avec plusieurs forums sur le même domaine ***

Ce tutoriel est basé sur la situation suivante :

Votre domaine sera pour ce tutoriel : VotreDomaine.fr
La page principale de votre site est : index.php
Le nom du script à inclure pour MyBB est : mybb_include.php

Code PHP :
/ <-- votre site est situé ici (répertoire racine)
|
_ forum <-- votre forum est situé ici
   
|_ admin
   
|_ images
   
|_ inc
   
|... 

Le fichier mybb_include.php est dans le répertoire racine ou le répertoire forum.

Voici le contenu du fichier mybb_include.php :
Code PHP :
<?php
define
("IN_MYBB"1);
define('THIS_SCRIPT''mybb_include.php');
$old_dir getcwd();
@
chdir('forum');
require_once 
"./global.php";
$lang->load("index");
$logoutlink $loginform '';
if(
$mybb->user['uid'] != 0){
  eval(
"\$logoutlink = \"".$templates->get("index_logoutlink")."\";");
}elseif(
login_attempt_check(false) !== false){
  eval(
"\$loginform = \"".$templates->get("index_loginform")."\";");
}

// Pour utiliser le style local au lieu du style MyBB, dé-commentez toutes les lignes de style ici ...
/*
echo '
<style>
#panel{
background-color:#f0f0f0;
padding:8px;
border:#d0d0d0 solid 1px;
font-family:Verdana,Arial,Sans-Serif;
font-size:11px;
line-height:15.4px;
}
</style>';
*/

// Pour utiliser le style MyBB au lieu du style local, dé-commentez les 3 lignes ici ...
/*
echo '<style>';
include_once($theme['stylesheets']['global']['global'][0]);
echo '</style>';
*/

echo '<script type="text/javascript" src="jscripts/prototype.js?ver=1600"></script>
<script type="text/javascript" src="jscripts/general.js?ver=1600"></script>
<div id="container"><div id="panel">'
.$welcomeblock.'</div></div>';

chdir($old_dir);
?>

Vous n'avez maintenant qu'à ajouter ceci à l'endroit voulu dans le fichier index.php de votre site web pour voir le bandeau de votre forum MyBB :
Code PHP :
require_once "forum/mybb_include.php"

Voici la configuration qui sera nécessaire pour vos cookies de MyBB :
cookiedomain : .VotreDomaine.fr
cookiepath : /
cookieprefix : forum

Il faudra supprimer tous les cookies du navigateur et ensuite vérifier si les connexion/déconnexion se font bien.

P.S. Je n'ai pas encore testé avec tous les types de situation, mais tout devrait être opérationnel... Wink
Je viens de tester en local, sur une copie du site de ma commune..

C'est OK à la condition expresse de paramétrer les cookies comme indiqué.
Sinon, bien qu'on soit connecté via /member.php?action=login, on apparaît toujours comme non connecté au retour sur le site.

Par contre j'ai essayé avec un site Wordpress, quel que soit l'endroit où je place la ligne require_once "forum/mybb_include.php", j'obtiens cette erreur :
Fatal error: Cannot redeclare get_attachment_icon() (previously declared in url_site_wordpress/wp-includes/deprecated.php:1966) in url_site_wordpress/forum/inc/functions.php on line 3155.

C'est pas de bol, Wordpress comporte une fonction get_attachment_icon() dans le fichier /wp-includes/deprecated.php et MyBB a une fonction portant exactement le même nom dans /inc/functions.php ! Sad

Mais c'est secondaire, on verra à l'usage si le problème se pose pour un membre...
Dans le principe et pour mon site codé "maison", ça marche.
Merci pour le tutoriel Smile
Il serait intéressant de préciser que si vous voulez par la suite afficher du contenu seulement pour les membres connectés, il vous suffit d'ajouter ceci suite à l'inclusion de votre fichier mybb_include.php.

Code PHP :
require_once "forum/mybb_include.php";
if(
$mybb->user['uid'] != 0){
  echo 
'Ce  texte ne va apparaître qu\'aux membres connectés!';
  if(
$mybb->user['usergroup'] == 4){
    echo 
'Ce  texte ne va apparaître qu\'aux membres connectés du groupe des administrateurs!';
  } 
}else{
  echo 
'Ce  texte ne va apparaître qu\'aux membres non-connectés!';

Merci du tutoriel je vais tester de ce pas ! Big Grin
(05-06-2014, 21:56)exdiogene a écrit : [ -> ]Voici la configuration qui sera nécessaire pour vos cookies de MyBB :
cookiedomain : .VotreDomaine.fr
cookiepath : /
cookieprefix : forum

J'ai un petit problème avec ce script, je m'explique, quand je configure mes cookies, sois sur le site ça marche, mais pas sur le forum, sois l'inverse.

Je suis en local, pour le moment donc je ne sais pas vraiment quoi mettre dans "cookiedomain", puisque . seul ne fonctionne pas, .localhost non plus (enfin pas chez moi ?), dans cookiepath je ne suis pas à la racine, j'utilise plusieurs dossiers pour mes projets donc l'adresse du site est de faite comme ça : http://localhost/xxx/ et donc celle du forum http://localhost/xxx/forum.

Merci de votre réponse Smile

Bonjour,
dans le cas où mon forum n'est pas un dossier du site, mais sur un sous-domaine, comment je procède ?
Je pose cette question, car je compte bien changer complètement mon site basé sur PhpBoost que je n'aime pas.
Mon site par exemple : http://blabla.fr
Mon forum : http://forum.blabla.fr

Merci d'avance de vote réponse !
Rien ne change dans le tutoriel car tous les sous-domaines sont pris en compte.

Mais si vous le désirez vous pouvez aussi remplacer votre cookiedomain avec : forum.VotreDomaine.fr
Merci à vous !
merci Wink
@Jules :

En mode localhost, voici la configuration :
cookiedomain : localhost (ou rien du tout)
cookiepath : /
cookieprefix : forum

Ne pas oublier de supprimer les cookies du navigateur, avant de tester...
Merci pour la réponse, et personnellement "localhost" en cookiedomain ne fonctionne pas, mais en laissant vide, ça marche parfaitement Smile !
Bonjour,
J'aimerai modifier le texte qui s'affiche lorsque l'on n'est pas connecté "bonjour visiteur". J'ai essayé de fouiller un peu mais impossible de trouver où le modifier.
Il y a t'il même moyen d'avoir le champ pseudo et mdp directement sur ma page de site ?
Postez une demande d'aide avec les informations nécessaires, sans ça, nous ne pourrons pas vous aider correctement.
lorsque l'on n'est pas connecté, la page de mon site me retourne "Bonjour visiteur. Connexion Incription".
J'aimerai afficher directement le "formulaire de connexion" avec les champ connexion mdp à la page de mon site. afin de ne pas être retourner à une page du forum come cela est fait avec le code donné.
Si cela n'est pas possible ou trop compliqué, remplacer le "Bonjour visiteur. connexion Inscription" par : "La connexion à votre compte est nécessaire. Connexion Inscription" :
Voici la page de mon site : http://www.mxgp.fr/event.php cliquer sur "inscription pour avoir la page de connexion"
 Utilitaire de traduction fourni par Regentronique