FluxBB.fr

Le site des utilisateurs francophones de FluxBB.

Vous n'êtes pas identifié(e).

#1 13-04-2012 13:44:32

juleno
Membre
Inscription : 13-04-2012
Messages : 5

Intégration WordPress - Demander un login pour certaines pages.

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

#2 12-05-2012 14:45:04

juleno
Membre
Inscription : 13-04-2012
Messages : 5

Re : Intégration WordPress - Demander un login pour certaines pages.

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 247

PS : 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

#3 24-06-2012 23:04:47

Warranty
Membre
Inscription : 04-01-2011
Messages : 19

Re : Intégration WordPress - Demander un login pour certaines pages.

Salut !

As-tu trouver la solution, car j'ai exactement le même problème de toi.

Merci

Hors ligne

#4 25-06-2012 00:32:36

juleno
Membre
Inscription : 13-04-2012
Messages : 5

Re : Intégration WordPress - Demander un login pour certaines pages.

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 hmm

Hors ligne

#5 25-06-2012 00:44:32

WinuX
Membre
Inscription : 18-07-2010
Messages : 390

Re : Intégration WordPress - Demander un login pour certaines pages.

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

#6 25-06-2012 02:36:11

juleno
Membre
Inscription : 13-04-2012
Messages : 5

Re : Intégration WordPress - Demander un login pour certaines pages.

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

#7 25-06-2012 09:17:48

WinuX
Membre
Inscription : 18-07-2010
Messages : 390

Re : Intégration WordPress - Demander un login pour certaines pages.

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à tongue

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

#8 05-07-2012 13:28:25

juleno
Membre
Inscription : 13-04-2012
Messages : 5

Re : Intégration WordPress - Demander un login pour certaines pages.

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

Pied de page des forums