MyBB.support, le portail francophone de MyBB

Version complète : Utiliser les identifiants de mybb pour un blog.
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.

VERSION_MyBB : 1.8.6
Bonjour,

J'héberge des blogs blogotext, j'aimerais que ces blogs utilisent les identifiants de mon forum Mybb 1.8.6 (http://sqliteblog.fr/forum/).

Si j'ai bien compris , vous utilisez ça : md5(md5($salt).md5($password) .

$password est-il lui même hasher ou à quoi correspond t'il ?

Pour $salt, je crois que j'ai trouvé.

En ce qui concerne md5, c'est assez sécurisé ? Je suis étonné de son utilisation.
Bonjour julienetnel.

Le mieux est d'utiliser le cookie de MyBB pour vérifier si l'utilisateur est connecté.
Dans votre code PHP, incluez la page global.php (include_once "global.php"Wink, puis vérifiez le statut de connexion avec if($mybb->user['uid'] > 0).

Bonne journée.
Bonjour,

Dans mon cas, ça serait : if ($mybb->user['username'] == $GLOBALS['identifiant']) ?

Edit :

Code PHP :
<?php

// Afficher les erreurs à l'écran
ini_set('display_errors'1);
// Enregistrer les erreurs dans un fichier de log
ini_set('log_errors'1);
// Nom du fichier qui enregistre les logs (attention aux droits à l'écriture)
ini_set('error_log'dirname(__file__) . '/log_error_php.txt');
// Afficher les erreurs et les avertissements
error_reporting(e_all);

include_once 
"http://sqliteblog.fr/forum/global.php";

$dir getcwd();

$url_list explode('/'$dir);

$GLOBALS['identifiant'] = $url_list[7];

echo 
$GLOBALS['identifiant'];

echo 
$mybb->user['username'];

if(
$mybb->user['username'] == $GLOBALS['identifiant'])
{
 
  echo "Hello there ".$mybb->user['username'];


else
{
 echo
'<p>Ca ne marche pas</p>'
}


?>

echo $mybb->user['username']; ne me retourne rien.
Pourquoi ?

$mybb->user['uid'] contient le numéro d'identification (uid) de l'utilisateur.
$mybb->user['username'] contient son nom d'utilisateur.

En résumé, si $mybb->user['uid'] est supérieur à 0, cela signifie que la personne qui visite la page est connectée à MyBB.
Vous pouvez alors récupérer son nom d'utilisateur (username), son groupe (usergroup), et bien plus si vous le souhaitez.

Il n'est pas utile de demander à l'utilisateur de se connecter une fois pour le forum, et une fois pour le blog, si une seule connexion peut suffire ! Smile
(12-12-2015, 14:39)Saphir a écrit : [ -> ]Pourquoi ?

$mybb->user['uid'] contient le numéro d'identification (uid) de l'utilisateur.
$mybb->user['username'] contient son nom d'utilisateur.

En résumé, si $mybb->user['uid'] est supérieur à 0, cela signifie que la personne qui visite la page est connectée à MyBB.
Vous pouvez alors récupérer son nom d'utilisateur (username), son groupe (usergroup), et bien plus si vous le souhaitez.

Il n'est pas utile de demander à l'utilisateur de se connecter une fois pour le forum, et une fois pour le blog, si une seule connexion peut suffire ! Smile

Code PHP :
<?php

// Afficher les erreurs à l'écran
ini_set('display_errors'1);
// Enregistrer les erreurs dans un fichier de log
ini_set('log_errors'1);
// Nom du fichier qui enregistre les logs (attention aux droits à l'écriture)
ini_set('error_log'dirname(__file__) . '/log_error_php.txt');
// Afficher les erreurs et les avertissements
error_reporting(e_all);

include_once 
"http://sqliteblog.fr/forum/global.php";

if(
$mybb->user['uid'] > 0){

$dir getcwd();

$url_list explode('/'$dir);

$GLOBALS['identifiant'] = $url_list[7];

echo 
'<p> $GLOBALS[\'identifiant\']; :  '.$GLOBALS['identifiant'].'</p>';

echo 
'<p> $mybb->user[\'username\']; :  '.$mybb->user['username'].'</p>';

if(
$mybb->user['username'] == $GLOBALS['identifiant'])
{
 
  echo "Hello there ".$mybb->user['username'];


else
{
 echo
'<p>Ca ne marche pas</p>'
}

}

else
{
 echo
'<p>Vous n\'êtes pas connecté</p>'
}

?>

Ca me retourne "Vous n'êtes pas connecté" alors que je le suis sur le forum.

Edit : si je met : include_once "../../../forum/global.php";

J'obtiens :

Direct initialization of this file is not allowed.

Please make sure IN_MYBB is defined.

Edit2 : en ajoutant define("IN_MYBB", 1);, ca disparait.

Mais j'ai à nouveau "Vous n'êtes pas connecté".

Edit3 : echo $mybb->user['uid']; : me retourne 0, alors que je suis connecté ...
(12-12-2015, 17:13)spyto a écrit : [ -> ]Il me semble me rappeler qu'il faut utiliser qq part chdir...

Un peu de lecture :
http://mybb.support/thread-6914.html

http://mybb.support/thread-6912.html
http://mybb.support/thread-6907.html
http://mybb.support/thread-6454.htm

Code PHP :
$dir getcwd();

$url_list explode('/'$dir);

$GLOBALS['identifiant'] = $url_list[7];


chdir('/var/www/virtual/sqliteblog.fr/htdocs/forum/'); // répertoire du forum
define("IN_MYBB"1);
require 
'global.php';
chdir('/var/www/virtual/sqliteblog.fr/htdocs/blog/'.$GLOBALS['identifiant'].'/admin/'); 

Chdir me donne le même resultat.

J'ai essayé de changer comme ici : http://mybb.support/thread-6912.html.

cookiedomain : .sqliteblog.Fr
cookiepath : /
cookieprefix : forum

Je n'arrive plus à me connecter à mon forum, à part l'admin.

Edit: même si je remets

cookiedomain : .sqliteblog.Fr
cookiepath : /forum/

Ca ne marche plus, obligé de remettre une backup.

J'ai bien vidé le cache du navigateur, les cookies ... j'ai testé sur un autre navigateur ...
J'ai fais une réinstallation, ça marche ... je ne sais pas d'où sa vient.

Voici la procédure que j'ai fais pour relier blogotext à mybb :

Le dossier du blog doit avoir le même nom que le pseudo sur le forum.

Remplacer operate_session(); par include 'verif.php'; dans les fichiers dans le dossier admin.

Créer un fichier verif.php avec le contenu suivant
Code PHP :
<?php

// Afficher les erreurs à l'écran
ini_set('display_errors'1);

$dir getcwd();

$url_list explode('/'$dir);

$GLOBALS['identifiant'] = $url_list[7];

chdir('/var/www/virtual/sqliteblog.fr/htdocs/forum/'); // répertoire du forum
define("IN_MYBB"1);
require 
'global.php';
chdir('/var/www/virtual/sqliteblog.fr/htdocs/blog/'.$GLOBALS['identifiant'].'/admin/');

if(
$mybb->user['uid'] > 0){

if(
$mybb->user['username'] == $GLOBALS['identifiant'])
{


else
{
header("Location: http://sqliteblog.Fr/forum/index.php");
}

}

else
{
header("Location: http://sqliteblog.fr/forum/index.php");


A l'installation du forum mettre ceci :
cookiedomain : .votredomaine.com
cookiepath : /forum/

C'est tout, je pense.

Vous pouvez mettre en résolu, si d'autres blogueurs utilisent blogotext et veulent le relier leur(s) blogs à mybb, c'est la marche à suivre.

Merci pour l'aide, bonne soirée.
Bonjour, julienetnel.
Il semblerait que votre demande d'aide soit résolue. C'est pourquoi cette discussion a été marquée du préfixe [Réglé].

Si vous n'avez toujours pas trouvé les réponses que vous cherchiez, merci de répondre à cette discussion afin que nous annulions ce marquage.
N'hésitez pas à commencer une nouvelle discussion si vous rencontrez d'autres problèmes dans le futur.
 Utilitaire de traduction fourni par Regentronique