Le site des utilisateurs francophones de FluxBB.
Vous n'êtes pas identifié(e).
Bonjour,
J'ai intégré le design de mon WordPress à mon forum hier. Mais j'aimerai que certaines pages du sites ne soit accessibles que si les utilisateurs sont loggés sur le forum. Je ne sais pas comment procéder, avez -vous une idée ?
En espérant avoir été assez clair et vous remerciant par avance de vos réponses,
Juleno
Hors ligne
Salut,
Pas de réponse mais j'essaye de me débrouiller, j'ai intégré le common.php à ma page :
define('PUN_DEBUG', 1);
define('PUN_ROOT', './forum/');
require PUN_ROOT.'include/common.php';Mais j'ai cette erreur qui me parvient :
Fatal error: Call to a member function query() on a non-object in /home/dvhkuntm/public_html/forum/include/functions.php on line 247PS : J'ai conscience que s'inscrire et poser une question directement n'est pas très apprécié sur un forum mais je m'en excuse, par ailleurs je pense que mon problème peut intéresser du monde étant donner que le topic a maintenant reçu plus de 700 visites.
Merci par avance
Hors ligne
Salut !
As-tu trouver la solution, car j'ai exactement le même problème de toi.
Merci
Hors ligne
L'intégration marche parfaitement sur une page vierge, le problème vient bel et bien de Wordpress et je n'y trouve pour l'instant aucune solution. Merci à toi de faire remonter le topic, dans l'attente d'une future réponse si la communauté n'est pas encore morte 
Hors ligne
Pour interdire l'axx au non loggué, il te suffit en debut de code, d'ajouter :
if($pun_user['is_guest'])
message($lang_common['No permission']);Pour ce qui est de ton erreur, pourrais-tu nous indiquer ce qu'il se trouve à cette fameuse ligne 247 de ton fichier include/function.php ?
La connexion à la base s'effectue bien? Quel SGDB utilises-tu?
Hors ligne
Oui merci, j'ai utilisé ce type de code qui fonctionne parfaitement en dehors du Wordpress. Pour ce qui est du contenu du fichier functions.php, il contient justement des informations sur la base de données il me semble, possible que le problème vienne de là. Comment connaître le système qu'utilise ma base de données ?
Hors ligne
Ton hébergeur l'indique, la plupart du temps il s'agit de mysql.
J'ai demandé ça au cas ou un expert en BDD passe par là 
Peut-tu me confirmer qu'il s'agisse de la fonction "set_default_user()" :
//
// Fill $pun_user with default values (for guests)
//
function set_default_user()
{
global $db, $db_type, $pun_user, $pun_config;
$remote_addr = get_remote_address();
// Fetch guest user
$result = $db->query('SELECT u.*, g.*, o.logged, o.last_post, o.last_search FROM '.$db->prefix.'users AS u INNER JOIN '.$db->prefix.'groups AS g ON u.group_id=g.g_id LEFT JOIN '.$db->prefix.'online AS o ON o.ident=\''.$remote_addr.'\' WHERE u.id=1') or error('Unable to fetch guest information', __FILE__, __LINE__, $db->error());
if (!$db->num_rows($result))
exit('Unable to fetch guest information. Your database must contain both a guest user and a guest user group.');
$pun_user = $db->fetch_assoc($result);
// Update online list
if (!$pun_user['logged'])
{
$pun_user['logged'] = time();
// With MySQL/MySQLi, REPLACE INTO avoids a user having two rows in the online table
switch ($db_type)
{
case 'mysql':
case 'mysqli':
case 'mysql_innodb':
case 'mysqli_innodb':
case 'sqlite':
$db->query('REPLACE INTO '.$db->prefix.'online (user_id, ident, logged, color) VALUES(1, \''.$db->escape($remote_addr).'\', '.$pun_user['logged'].', \''.$pun_user['g_color'].'\')') or error('Unable to insert into online list', __FILE__, __LINE__, $db->error());
break;
default:
$db->query('INSERT INTO '.$db->prefix.'online (user_id, ident, logged, color) SELECT 1, \''.$db->escape($remote_addr).'\', '.$pun_user['logged'].'\', '.$pun_user['g_color'].'\' WHERE NOT EXISTS (SELECT 1 FROM '.$db->prefix.'online WHERE ident=\''.$db->escape($remote_addr).'\')') or error('Unable to insert into online list', __FILE__, __LINE__, $db->error());
break;
}
}
else
$db->query('UPDATE '.$db->prefix.'online SET logged='.time().' WHERE ident=\''.$db->escape($remote_addr).'\'') or error('Unable to update online list', __FILE__, __LINE__, $db->error());
$pun_user['disp_topics'] = $pun_config['o_disp_topics_default'];
$pun_user['disp_posts'] = $pun_config['o_disp_posts_default'];
$pun_user['timezone'] = $pun_config['o_default_timezone'];
$pun_user['dst'] = $pun_config['o_default_dst'];
$pun_user['language'] = $pun_config['o_default_lang'];
$pun_user['style'] = $pun_config['o_default_style'];
$pun_user['is_guest'] = true;
$pun_user['is_admmod'] = false;
}Ton forum fonctionne t-il sans problème?
Peut-tu nous confirmer que ce code est présent en premier dans ta page :
define('PUN_DEBUG', 1);
define('PUN_ROOT', './forum/');
require PUN_ROOT.'include/common.php';Hors ligne
Salut, désolé de ne pas avoir répondu plus tôt, j'étais loin, coupé du monde 
Oui ce code est bien présent au début de mes pages ( header.php de Wordpress, je pense que le problème vient de la variable $db qui n'est pas reconnue en tant qu'objet dans le fichier functions.php, j'ai utilisé ce bout de code afin de le vérifier :
if(!is_object($db)){echo"DB N EST PAS UN OBJET";}J'obtiens bien mon message d'erreur ...
Hors ligne