Bonjour, suite à un test de la rc3 je viens de déceler un bug plutot contraignant : tout les utilisateurs ont le même pseudo dans les topics...
www.organisationtressecrete.com/bug.jpg
voici l'image du bug. Les mods que j'ai (car qui sait ca vient peut être pas du fsb vu que au départ ca allait...) sont Messagerie privée, optimisation database, fsbmyadmin, rang et temps génération page
suite à l'annonce que ces mods jouais... Le dernier mis est MP. A mon avis ça ne peut venir que d'un des mods suivant : MP et rang
merci d'avance à celui qui m'aidera
[EDIT] je viens de découvrir que c'est que dans les topics donc certainement une erreur d'un de mes fichiers pour les topics mais je trouve pas. Donc ca vient du sujet.php mais je trouve pas o๠est l'erreur, ca donc venir de rang mod :
[php]<?php
/*******************************************************************************
*
* [ ./sujet.php (français) ]
*
* --------------------------------------------------------------------------
* Commencé le : 25 aoà»t 2004
* Copyright : Groupe Fire Soft Board
* Site Web : http://www.fire-soft-board.com
* E-mail : support@fire-soft-board.com
* --------------------------------------------------------------------------
* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les
* termes de la Licence Publique Générale GNU publiée par la Free Software Foundation
* (version 2). Reportez-vous à la Licence Publique Générale GNU pour plus de détails.
* Vous devez avoir reçu une copie de la Licence Publique Générale GNU en même temps
* que ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, àtats-Unis.
* --------------------------------------------------------------------------
*
* Derniére modification le 18 janvier 2004 par Genova vRC2-00047
* Templates : 1
* sujet_corps.tpl
*
*******************************************************************************/
define('FORUM', TRUE);
$racine = './';
include($racine . 'demarrage.php');
// On lance les sessions
$membre = recuperer_session();
include( $racine . 'includes/functions/fonctions_message.php' );
include( $racine . 'includes/functions/fonctions_hierarchie.php' );
// On inclu les données sur les forums/categories
include( $racine . 'cache/fichier_categorie.php' );
include( $racine . 'cache/fichier_forum.php' );
// On importe les smileys
include( $racine . 'cache/fichier_smiley.php' );
// On importe les rangs
include( $racine . 'cache/fichier_rang.php' );
function classer_rang($a, $b)
{
return ( $b['rang_quota'] < $a['rang_quota'] ) ? -1 : 1;;
}
usort($rang, 'classer_rang');
//
// Sécurisation de variables
//
$sujet_id = ( isset($HTTP_GET_VARS['sujet']) ) ? intval($HTTP_GET_VARS['sujet']) : '';
$message_id = ( isset($HTTP_GET_VARS['message']) ) ? intval($HTTP_GET_VARS['message']) : '';
$page = intval($HTTP_GET_VARS['page']);
$page = ( empty($page) ) ? 1 : $page;
//
// Récupération des données du sujet
//
if ( $message_id != '' )
{
$sql = 'SELECT mes.sujet_id, s.sujet_nom, s.forum_id, s.sujet_status, s.nb_reponse, s.dernier_message_temps FROM ' . MESSAGES_TABLE . ' mes
LEFT JOIN ' . SUJETS_TABLE . ' s
ON mes.sujet_id = s.sujet_id
WHERE mes.message_id = \'' . $message_id . '\'';
}
else
{
$sql = 'SELECT sujet_id, sujet_nom, forum_id, sujet_status, nb_reponse, dernier_message_temps FROM ' . SUJETS_TABLE . '
WHERE sujet_id = \'' . $sujet_id . '\'';
}
if ( ! $result = $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_select'], 'sujets'), __LINE__, __FILE__, $sql);
}
$sujet = $bdd->tableau($result);
$sujet_id = ( $message_id != '' ) ? $sujet['sujet_id'] : $sujet_id;
$forum_id = $sujet['forum_id'];
if ( $sujet['sujet_id'] == '' )
{
info($langue['er_titre'], $langue['sujet_inexistant']);
}
//
// Nécessaire pour récupérer les droits du membre
//
include( $racine . 'cache/fichier_moderation.php' );
$forum_a = forum_tableau($forum_id);
$droits = droits($membre, $forum_a, $moderation, $droit_forum);
if ( ! $droits['droit_voir'] || ! $droits['droit_lire'] )
{
info($langue['info_titre'], $langue['interdit_droit_voir']);
}
//
// On met à jour le nombre de fois que le sujet à été vu
//
$sql = 'UPDATE ' . SUJETS_TABLE . '
SET nb_vu = nb_vu + 1
WHERE sujet_id = \'' . $sujet_id . '\'';
if ( ! $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_update'], 'sujets'), __LINE__, __FILE__, $sql);
}
//
// On marque ce sujet comme 'lu' via un tableau sérialisé dans un cookie
//
if ($membre['membre_id'] != INVITE)
{
$cookie = unserialize(stripslashes($HTTP_COOKIE_VARS[$config['cookie_nom'] . '_sujets']));
$cookie[$sujet_id]['type'] = LU;
$cookie[$sujet_id]['forum_id'] = $forum_id;
$cookie[$sujet_id]['temps'] = time();
@setcookie($config['cookie_nom'] . '_sujets', serialize($cookie), 0, $config['cookie_chemin'], $config['cookie_dommaine'], $config['cookie_securite']);
}
//
// Récupération des messages et des données des auteurs
//
$limite_periode = ( $config['messages_par_page'] > 0 ) ? $config['messages_par_page'] : 1;
if ( $message_id == '' )
{
$limite_debut = $page * $limite_periode - $limite_periode;
$limite_debut = ( $page < 1 || $page > ceil(( $sujet['nb_reponse'] + 1 ) / $limite_periode) ) ? 0 : $limite_debut;
}
else
{
//
// On arrive par une url du type sujet.php?message=x, on va donc récupéré le nombre de message
// avant celui
//
$sql = 'SELECT COUNT(message_id) AS nb_message_avant FROM ' . MESSAGES_TABLE . '
WHERE sujet_id = \'' . $sujet_id . '\'
AND message_id <= \'' . $message_id . '\'';
if ( ! $result = $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_select'], 'messages'), __LINE__, __FILE__, $sql);
}
$limit = $bdd->tableau($result);
$page = ( $limit['nb_message_avant'] > 0 ) ? ceil($limit['nb_message_avant'] / $limite_periode) : 1;
$limite_debut = $page * $limite_periode - $limite_periode;
}
$sql = 'SELECT mes.*, mem.*
FROM ' . MESSAGES_TABLE . ' mes
LEFT JOIN ' . MEMBRES_TABLE . ' mem
ON mes.membre_id = mem.membre_id
WHERE mes.sujet_id = \'' . $sujet_id . '\'
ORDER BY message_temps
LIMIT ' . $limite_debut . ', ' . $limite_periode;
if ( ! $result = $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_select'], 'messages'), __LINE__, __FILE__, $sql);
}
if( ! $bdd->compte($result) )
{
info($langue['er_titre'], $langue['sujet_inexistant']);
}
$message = array();
while($message_tmp = $bdd->tableau($result))
{
$message[] = $message_tmp;
}
$nb_message_total = count($message);
//
// on compte le nombre total de sujet du topic
//
$sql = 'SELECT COUNT(message_id) AS nb_message FROM ' . MESSAGES_TABLE . '
WHERE sujet_id = \'' . $sujet_id . '\'';
if ( ! $result = $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_select'], 'messages'), __LINE__, __FILE__, $sql);
}
$stat = $bdd->tableau($result);
$img_nouveau = ( $droits['droit_poster'] ) ? '<a href="' . ajout_sid('poster.php?mode=nouveau_sujet&forum=' . $forum_a['forum_id']) . '">' . sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'nouveau.gif', $langue['img_nouveau'], $langue['img_nouveau']) . '</a>' : ( $membre['membre_id'] == INVITE ? '<a href="' . ajout_sid('connexion.php?redirection=poster.php$mode=nouveau_sujet*forum=' . $forum_id) . '">' : '' ) . sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'interdit.gif', $langue['img_interdit_poster'], $langue['img_interdit_poster']) . ( $membre['membre_id'] == INVITE ? '</a>' : '' );
if ( $droits['droit_repondre'] )
{
$img_repondre = ( $sujet['sujet_status'] ) ? '<a href="' . ajout_sid('poster.php?mode=reponse&sujet=' . $sujet_id) . '">' . sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'repondre.gif', $langue['img_repondre'], $langue['img_repondre']) . '</a>' : '<a href="' . ajout_sid('poster.php?mode=reponse&sujet=' . $sujet_id) . '">' . sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'verrouille.gif', $langue['img_verrouille'], $langue['img_verrouille']) . '</a>';
}
else
{
$img_repondre = ( $membre['membre_id'] == INVITE ? '<a href="' . ajout_sid('connexion.php?redirection=poster.php$mode=reponse*sujet=' . $sujet_id) . '">' : '' ) . sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'interdit.gif', $langue['img_interdit_repondre'], $langue['img_interdit_repondre']) . ( $membre['membre_id'] == INVITE ? '</a>' : '' );
}
$nb_page = ceil( $stat['nb_message'] / $config['messages_par_page'] );
$pagination = ( $nb_page > 1 ) ? pagination('sujet.php?sujet=' . $sujet_id, $nb_page, $page) : '';
//
// On récupère une liste des forums avec un code javascript pour faire une jumpbox (liste permettant de
// sauter rapidement vers un autre forum.
//
$forumbox = hierarchie_forums(TRUE, $categorie, $forum, 'forumbox', 'f-' . $forum_id);
// On inclut le haut de la page
$liens_header = hierarchie_forum($forum_id, '', PREMIER_PALIER, FALSE) . ' -> ' . $sujet['sujet_nom'];
$page_titre = sprintf($langue['page_titre_sujet'], $sujet['sujet_nom']);
define('LIENS_FOOTER', TRUE);
include( $racine . 'includes/header_forum.php' );
$tpl->set_filenames( array('corps' => 'sujet_corps.tpl') );
$tpl->assign_vars( array(
'TITRE_SUJET' => $sujet['sujet_nom'],
'L_AUTEUR' => $langue['auteur'],
'L_MESSAGE' => $langue['message'],
'U_SUPPRIMER_SUJ' => ajout_sid('moderation.php?mode=supprimer_sujet&sujet_t_id=' . $sujet_id),
'U_DEPLACER_SUJ' => ajout_sid('moderation.php?mode=deplacer_sujet&sujet_t_id=' . $sujet_id),
'U_BLOQUER_SUJ' => ( $sujet['sujet_status'] ) ? ajout_sid('moderation.php?mode=verrouiller_sujet&sujet_t_id=' . $sujet_id) : ajout_sid('moderation.php?mode=deverrouiller_sujet&sujet_t_id=' . $sujet_id),
'IMG_NOUVEAU' => $img_nouveau,
'IMG_REPONDRE' => $img_repondre,
'IMG_SUPPRIMER_SUJ' => sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/supprimer_sujet.gif', $langue['img_supprimer_sujet'], $langue['img_supprimer_sujet']),
'IMG_DEPLACER_SUJ' => sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/deplacer_sujet.gif', $langue['img_deplacer_sujet'], $langue['img_deplacer_sujet']),
'IMG_BLOQUER_SUJ' => ( $sujet['sujet_status'] ) ? sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/verrouiller_sujet.gif', $langue['img_verrouiller_sujet'], $langue['img_verrouiller_sujet']) : sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/deverrouiller_sujet.gif', $langue['img_deverrouiller_sujet'], $langue['img_deverrouiller_sujet']),
'IMG_HAUT' => sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/fleche_haut.gif', $langue['haut_page'], $langue['haut_page']),
'IMG_BAS' => sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/fleche_bas.gif', $langue['bas_page'], $langue['bas_page']),
'PAGINATION' => $pagination['pagination'],
'PAGINATION_CODE' => $pagination['code'],
'FORUMBOX' => $forumbox['liste'],
'FORUMBOX_CODE' => $forumbox['code']
));
for ( $p = 0; $p < $nb_message_total; $p++ )
{
$membre_niveau = niveau_autorisation($message[$p]);
//
// On parse la signature du posteur pour afficher correctement les BBcode,
// ne pas afficher le HTML, etc...
//
$signature = ( $message[$p]['aut_signature'] ) ? $message[$p]['membre_signature'] : '';
if ( $signature != '' )
{
$signature = anti_html($signature);
$signature = nl2br($signature);
$signature = fscode_parse($signature);
$signature = smileys($signature, $smiley);
$signature = '----------------------<br />' . $signature;
}
//
// On parse le texte du message pour afficher correctement les BBcode,
// ne pas afficher le HTML, etc...
//
$message_txt = $message[$p]['message_texte'];
$message_txt = anti_html($message_txt);
$message_txt = nl2br($message_txt);
$message_txt = fscode_parse($message_txt);
$message_txt = smileys($message_txt, $smiley);
$premier_message = ( $p == 0 && $page == 1 ) ? TRUE : FALSE;
$rang_titre = '';
$rang_img = '';
for ( $r = 0; $r < $compte_rang; $r++ )
{
if ( ( $rang[$r]['rang_id'] == $message[$p]['membre_rang'] && ! empty($message[$p]['membre_rang']) ) || ( $message[$p]['membre_nb_message'] >= $rang[$r]['rang_quota'] && empty($message[$p]['membre_rang']) && $rang[$r]['rang_quota'] != RANG_SPECIAL ) )
{
$rang_titre = $rang[$r]['rang_titre'];
$rang_img = $rang[$r]['rang_img'];
break;
}
}
$tpl->assign_block_vars('message', array(
'L_NIVEAU' => $langue['autorisation'],
'L_NB_MESSAGES' => $langue['membre_nb_messages'],
'L_INSCRIT_LE' => $langue['inscrit_le'],
'L_POSTE_LE' => $langue['poste_le'],
'L_INVITE' => $langue['invite'],
'MEMBRE_LOGIN' => $message[$p]['membre_id'] == INVITE ? $message[$p]['pseudo_posteur'] : '<a href="' . ajout_sid( 'profil_public.php?id=' . $message[$p]['membre_id'] ) . '">' . $message[$p]['pseudo_posteur'] . '</a>',
'MEMBRE_AVATAR' => ( $message[$p]['membre_avatar'] != '' && $message[$p]['aut_avatar'] ) ? sprintf($theme['img'], $message[$p]['membre_avatar'],$langue['avatar'], $langue['avatar']) : '<br />',
'MEMBRE_SIGNATURE' => $signature,
'MESSAGE_ID' => $message[$p]['message_id'],
'PAGINATION' => $pagination['pagination'],
'RANG_TITRE' => ( ! empty($rang_titre) ) ? '<br />' . $rang_titre : '',
'RANG_IMG' => ( ! empty($rang_img) ) ? sprintf($theme['img'], $racine . 'images/rangs/' . $rang_img, '', $rang_titre) : '',
'V_MEMBRE_NIVEAU' => $membre_niveau,
'V_MEMBRE_NB_MESSAGES' => $message[$p]['membre_nb_message'],
'V_MEMBRE_INSCRIT_LE' => aff_date( $message[$p]['date_enregistrement'], 'j F Y'),
'V_POSTE_LE' => aff_date($message[$p]['message_temps']),
'V_MESSAGE' => $message_txt,
'IMG_EDITER' => ( $droits['droit_editer'] || ( $droits['membre_editer'] && $membre['membre_id'] == $message[$p]['membre_id'] ) ) ? '<a href="' . ajout_sid('poster.php?mode=editer&message=' . $message[$p]['message_id']) . '">' . sprintf($theme['img'], 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'edit.gif', $langue['img_editer'], $langue['img_editer']) . '</a>' : '',
'IMG_SUPPR' => ( ( $droits['droit_supprimer'] && ! $premier_message ) || ( $droits['membre_supprimer'] && $membre['membre_id'] == $message[$p]['membre_id'] && ! $premier_message )|| ( $droits['droit_supprimer'] && $premier_message && $sujet['nb_reponse'] == 0 ) ) ? '<a href="' . ajout_sid('moderation.php?mode=supprimer_message&message=' . $message[$p]['message_id']) . '">' . sprintf($theme['img'], 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'suppr.gif', $langue['img_suppr'], $langue['img_suppr']) . '</a>' : '',
'IMG_CITER' => ( $droits['droit_repondre'] ) ? '<a href="' . ajout_sid('poster.php?mode=reponse&sujet=' . $sujet_id . '&citer=' . $message[$p]['message_id']) . '">' . sprintf($theme['img'], 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'citer.gif', $langue['img_citer'], $langue['img_citer']) . '</a>' : '',
'IMG_MP' => '<a href="' . ajout_sid('poster.php?mode=message_prive&login=' . $message[$p]['membre_login']) . '">' . sprintf($theme['img'], 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'mp.gif', $langue['img_mp'], $langue['img_mp']) . '</a>',
'IMG_MAIL' => ( $message[$p]['membre_voir_mail'] ) ? '<a href="mailto:' . $message[$p]['membre_email'] . '">' . sprintf($theme['img'], 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'mail.gif', $langue['img_mail'], $langue['img_mail']) . '</a>' : ( $config['mail_par_forum'] ? '<a href="' . ajout_sid('profil.php?mode=mail&to=' . $message[$p]['membre_id']) . '">' . sprintf($theme['img'], 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'mail.gif', $langue['img_mail'], $langue['img_mail']) . '</a>' : '' )
));
if( $message[$p]['membre_id'] != INVITE )
{
$tpl->assign_block_vars( 'message.pas_invite', array() );
}
elseif( $message[$p]['membre_id'] == INVITE )
{
$tpl->assign_block_vars( 'message.invite', array() );
}
if( $membre['membre_aut'] == ADMIN )
{
$tpl->assign_block_vars( 'message.aut_voir_ip', array(
'L_IP' => $langue['ip'],
'V_MESSAGE_IP' => long2ip($message[$p]['message_ip'])
));
}
}
if ( $droits['est_modo'] )
{
$tpl->create_block('option_moderation');
}
$tpl->pparse('corps');
// On inclut le bas de la page
include( $racine . 'includes/footer_forum.php' );
?>
[/php]
www.organisationtressecrete.com/bug.jpg
voici l'image du bug. Les mods que j'ai (car qui sait ca vient peut être pas du fsb vu que au départ ca allait...) sont Messagerie privée, optimisation database, fsbmyadmin, rang et temps génération page
suite à l'annonce que ces mods jouais... Le dernier mis est MP. A mon avis ça ne peut venir que d'un des mods suivant : MP et rang
merci d'avance à celui qui m'aidera
[EDIT] je viens de découvrir que c'est que dans les topics donc certainement une erreur d'un de mes fichiers pour les topics mais je trouve pas. Donc ca vient du sujet.php mais je trouve pas o๠est l'erreur, ca donc venir de rang mod :
[php]<?php
/*******************************************************************************
*
* [ ./sujet.php (français) ]
*
* --------------------------------------------------------------------------
* Commencé le : 25 aoà»t 2004
* Copyright : Groupe Fire Soft Board
* Site Web : http://www.fire-soft-board.com
* E-mail : support@fire-soft-board.com
* --------------------------------------------------------------------------
* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les
* termes de la Licence Publique Générale GNU publiée par la Free Software Foundation
* (version 2). Reportez-vous à la Licence Publique Générale GNU pour plus de détails.
* Vous devez avoir reçu une copie de la Licence Publique Générale GNU en même temps
* que ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, àtats-Unis.
* --------------------------------------------------------------------------
*
* Derniére modification le 18 janvier 2004 par Genova vRC2-00047
* Templates : 1
* sujet_corps.tpl
*
*******************************************************************************/
define('FORUM', TRUE);
$racine = './';
include($racine . 'demarrage.php');
// On lance les sessions
$membre = recuperer_session();
include( $racine . 'includes/functions/fonctions_message.php' );
include( $racine . 'includes/functions/fonctions_hierarchie.php' );
// On inclu les données sur les forums/categories
include( $racine . 'cache/fichier_categorie.php' );
include( $racine . 'cache/fichier_forum.php' );
// On importe les smileys
include( $racine . 'cache/fichier_smiley.php' );
// On importe les rangs
include( $racine . 'cache/fichier_rang.php' );
function classer_rang($a, $b)
{
return ( $b['rang_quota'] < $a['rang_quota'] ) ? -1 : 1;;
}
usort($rang, 'classer_rang');
//
// Sécurisation de variables
//
$sujet_id = ( isset($HTTP_GET_VARS['sujet']) ) ? intval($HTTP_GET_VARS['sujet']) : '';
$message_id = ( isset($HTTP_GET_VARS['message']) ) ? intval($HTTP_GET_VARS['message']) : '';
$page = intval($HTTP_GET_VARS['page']);
$page = ( empty($page) ) ? 1 : $page;
//
// Récupération des données du sujet
//
if ( $message_id != '' )
{
$sql = 'SELECT mes.sujet_id, s.sujet_nom, s.forum_id, s.sujet_status, s.nb_reponse, s.dernier_message_temps FROM ' . MESSAGES_TABLE . ' mes
LEFT JOIN ' . SUJETS_TABLE . ' s
ON mes.sujet_id = s.sujet_id
WHERE mes.message_id = \'' . $message_id . '\'';
}
else
{
$sql = 'SELECT sujet_id, sujet_nom, forum_id, sujet_status, nb_reponse, dernier_message_temps FROM ' . SUJETS_TABLE . '
WHERE sujet_id = \'' . $sujet_id . '\'';
}
if ( ! $result = $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_select'], 'sujets'), __LINE__, __FILE__, $sql);
}
$sujet = $bdd->tableau($result);
$sujet_id = ( $message_id != '' ) ? $sujet['sujet_id'] : $sujet_id;
$forum_id = $sujet['forum_id'];
if ( $sujet['sujet_id'] == '' )
{
info($langue['er_titre'], $langue['sujet_inexistant']);
}
//
// Nécessaire pour récupérer les droits du membre
//
include( $racine . 'cache/fichier_moderation.php' );
$forum_a = forum_tableau($forum_id);
$droits = droits($membre, $forum_a, $moderation, $droit_forum);
if ( ! $droits['droit_voir'] || ! $droits['droit_lire'] )
{
info($langue['info_titre'], $langue['interdit_droit_voir']);
}
//
// On met à jour le nombre de fois que le sujet à été vu
//
$sql = 'UPDATE ' . SUJETS_TABLE . '
SET nb_vu = nb_vu + 1
WHERE sujet_id = \'' . $sujet_id . '\'';
if ( ! $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_update'], 'sujets'), __LINE__, __FILE__, $sql);
}
//
// On marque ce sujet comme 'lu' via un tableau sérialisé dans un cookie
//
if ($membre['membre_id'] != INVITE)
{
$cookie = unserialize(stripslashes($HTTP_COOKIE_VARS[$config['cookie_nom'] . '_sujets']));
$cookie[$sujet_id]['type'] = LU;
$cookie[$sujet_id]['forum_id'] = $forum_id;
$cookie[$sujet_id]['temps'] = time();
@setcookie($config['cookie_nom'] . '_sujets', serialize($cookie), 0, $config['cookie_chemin'], $config['cookie_dommaine'], $config['cookie_securite']);
}
//
// Récupération des messages et des données des auteurs
//
$limite_periode = ( $config['messages_par_page'] > 0 ) ? $config['messages_par_page'] : 1;
if ( $message_id == '' )
{
$limite_debut = $page * $limite_periode - $limite_periode;
$limite_debut = ( $page < 1 || $page > ceil(( $sujet['nb_reponse'] + 1 ) / $limite_periode) ) ? 0 : $limite_debut;
}
else
{
//
// On arrive par une url du type sujet.php?message=x, on va donc récupéré le nombre de message
// avant celui
//
$sql = 'SELECT COUNT(message_id) AS nb_message_avant FROM ' . MESSAGES_TABLE . '
WHERE sujet_id = \'' . $sujet_id . '\'
AND message_id <= \'' . $message_id . '\'';
if ( ! $result = $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_select'], 'messages'), __LINE__, __FILE__, $sql);
}
$limit = $bdd->tableau($result);
$page = ( $limit['nb_message_avant'] > 0 ) ? ceil($limit['nb_message_avant'] / $limite_periode) : 1;
$limite_debut = $page * $limite_periode - $limite_periode;
}
$sql = 'SELECT mes.*, mem.*
FROM ' . MESSAGES_TABLE . ' mes
LEFT JOIN ' . MEMBRES_TABLE . ' mem
ON mes.membre_id = mem.membre_id
WHERE mes.sujet_id = \'' . $sujet_id . '\'
ORDER BY message_temps
LIMIT ' . $limite_debut . ', ' . $limite_periode;
if ( ! $result = $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_select'], 'messages'), __LINE__, __FILE__, $sql);
}
if( ! $bdd->compte($result) )
{
info($langue['er_titre'], $langue['sujet_inexistant']);
}
$message = array();
while($message_tmp = $bdd->tableau($result))
{
$message[] = $message_tmp;
}
$nb_message_total = count($message);
//
// on compte le nombre total de sujet du topic
//
$sql = 'SELECT COUNT(message_id) AS nb_message FROM ' . MESSAGES_TABLE . '
WHERE sujet_id = \'' . $sujet_id . '\'';
if ( ! $result = $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_select'], 'messages'), __LINE__, __FILE__, $sql);
}
$stat = $bdd->tableau($result);
$img_nouveau = ( $droits['droit_poster'] ) ? '<a href="' . ajout_sid('poster.php?mode=nouveau_sujet&forum=' . $forum_a['forum_id']) . '">' . sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'nouveau.gif', $langue['img_nouveau'], $langue['img_nouveau']) . '</a>' : ( $membre['membre_id'] == INVITE ? '<a href="' . ajout_sid('connexion.php?redirection=poster.php$mode=nouveau_sujet*forum=' . $forum_id) . '">' : '' ) . sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'interdit.gif', $langue['img_interdit_poster'], $langue['img_interdit_poster']) . ( $membre['membre_id'] == INVITE ? '</a>' : '' );
if ( $droits['droit_repondre'] )
{
$img_repondre = ( $sujet['sujet_status'] ) ? '<a href="' . ajout_sid('poster.php?mode=reponse&sujet=' . $sujet_id) . '">' . sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'repondre.gif', $langue['img_repondre'], $langue['img_repondre']) . '</a>' : '<a href="' . ajout_sid('poster.php?mode=reponse&sujet=' . $sujet_id) . '">' . sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'verrouille.gif', $langue['img_verrouille'], $langue['img_verrouille']) . '</a>';
}
else
{
$img_repondre = ( $membre['membre_id'] == INVITE ? '<a href="' . ajout_sid('connexion.php?redirection=poster.php$mode=reponse*sujet=' . $sujet_id) . '">' : '' ) . sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'interdit.gif', $langue['img_interdit_repondre'], $langue['img_interdit_repondre']) . ( $membre['membre_id'] == INVITE ? '</a>' : '' );
}
$nb_page = ceil( $stat['nb_message'] / $config['messages_par_page'] );
$pagination = ( $nb_page > 1 ) ? pagination('sujet.php?sujet=' . $sujet_id, $nb_page, $page) : '';
//
// On récupère une liste des forums avec un code javascript pour faire une jumpbox (liste permettant de
// sauter rapidement vers un autre forum.
//
$forumbox = hierarchie_forums(TRUE, $categorie, $forum, 'forumbox', 'f-' . $forum_id);
// On inclut le haut de la page
$liens_header = hierarchie_forum($forum_id, '', PREMIER_PALIER, FALSE) . ' -> ' . $sujet['sujet_nom'];
$page_titre = sprintf($langue['page_titre_sujet'], $sujet['sujet_nom']);
define('LIENS_FOOTER', TRUE);
include( $racine . 'includes/header_forum.php' );
$tpl->set_filenames( array('corps' => 'sujet_corps.tpl') );
$tpl->assign_vars( array(
'TITRE_SUJET' => $sujet['sujet_nom'],
'L_AUTEUR' => $langue['auteur'],
'L_MESSAGE' => $langue['message'],
'U_SUPPRIMER_SUJ' => ajout_sid('moderation.php?mode=supprimer_sujet&sujet_t_id=' . $sujet_id),
'U_DEPLACER_SUJ' => ajout_sid('moderation.php?mode=deplacer_sujet&sujet_t_id=' . $sujet_id),
'U_BLOQUER_SUJ' => ( $sujet['sujet_status'] ) ? ajout_sid('moderation.php?mode=verrouiller_sujet&sujet_t_id=' . $sujet_id) : ajout_sid('moderation.php?mode=deverrouiller_sujet&sujet_t_id=' . $sujet_id),
'IMG_NOUVEAU' => $img_nouveau,
'IMG_REPONDRE' => $img_repondre,
'IMG_SUPPRIMER_SUJ' => sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/supprimer_sujet.gif', $langue['img_supprimer_sujet'], $langue['img_supprimer_sujet']),
'IMG_DEPLACER_SUJ' => sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/deplacer_sujet.gif', $langue['img_deplacer_sujet'], $langue['img_deplacer_sujet']),
'IMG_BLOQUER_SUJ' => ( $sujet['sujet_status'] ) ? sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/verrouiller_sujet.gif', $langue['img_verrouiller_sujet'], $langue['img_verrouiller_sujet']) : sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/deverrouiller_sujet.gif', $langue['img_deverrouiller_sujet'], $langue['img_deverrouiller_sujet']),
'IMG_HAUT' => sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/fleche_haut.gif', $langue['haut_page'], $langue['haut_page']),
'IMG_BAS' => sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/fleche_bas.gif', $langue['bas_page'], $langue['bas_page']),
'PAGINATION' => $pagination['pagination'],
'PAGINATION_CODE' => $pagination['code'],
'FORUMBOX' => $forumbox['liste'],
'FORUMBOX_CODE' => $forumbox['code']
));
for ( $p = 0; $p < $nb_message_total; $p++ )
{
$membre_niveau = niveau_autorisation($message[$p]);
//
// On parse la signature du posteur pour afficher correctement les BBcode,
// ne pas afficher le HTML, etc...
//
$signature = ( $message[$p]['aut_signature'] ) ? $message[$p]['membre_signature'] : '';
if ( $signature != '' )
{
$signature = anti_html($signature);
$signature = nl2br($signature);
$signature = fscode_parse($signature);
$signature = smileys($signature, $smiley);
$signature = '----------------------<br />' . $signature;
}
//
// On parse le texte du message pour afficher correctement les BBcode,
// ne pas afficher le HTML, etc...
//
$message_txt = $message[$p]['message_texte'];
$message_txt = anti_html($message_txt);
$message_txt = nl2br($message_txt);
$message_txt = fscode_parse($message_txt);
$message_txt = smileys($message_txt, $smiley);
$premier_message = ( $p == 0 && $page == 1 ) ? TRUE : FALSE;
$rang_titre = '';
$rang_img = '';
for ( $r = 0; $r < $compte_rang; $r++ )
{
if ( ( $rang[$r]['rang_id'] == $message[$p]['membre_rang'] && ! empty($message[$p]['membre_rang']) ) || ( $message[$p]['membre_nb_message'] >= $rang[$r]['rang_quota'] && empty($message[$p]['membre_rang']) && $rang[$r]['rang_quota'] != RANG_SPECIAL ) )
{
$rang_titre = $rang[$r]['rang_titre'];
$rang_img = $rang[$r]['rang_img'];
break;
}
}
$tpl->assign_block_vars('message', array(
'L_NIVEAU' => $langue['autorisation'],
'L_NB_MESSAGES' => $langue['membre_nb_messages'],
'L_INSCRIT_LE' => $langue['inscrit_le'],
'L_POSTE_LE' => $langue['poste_le'],
'L_INVITE' => $langue['invite'],
'MEMBRE_LOGIN' => $message[$p]['membre_id'] == INVITE ? $message[$p]['pseudo_posteur'] : '<a href="' . ajout_sid( 'profil_public.php?id=' . $message[$p]['membre_id'] ) . '">' . $message[$p]['pseudo_posteur'] . '</a>',
'MEMBRE_AVATAR' => ( $message[$p]['membre_avatar'] != '' && $message[$p]['aut_avatar'] ) ? sprintf($theme['img'], $message[$p]['membre_avatar'],$langue['avatar'], $langue['avatar']) : '<br />',
'MEMBRE_SIGNATURE' => $signature,
'MESSAGE_ID' => $message[$p]['message_id'],
'PAGINATION' => $pagination['pagination'],
'RANG_TITRE' => ( ! empty($rang_titre) ) ? '<br />' . $rang_titre : '',
'RANG_IMG' => ( ! empty($rang_img) ) ? sprintf($theme['img'], $racine . 'images/rangs/' . $rang_img, '', $rang_titre) : '',
'V_MEMBRE_NIVEAU' => $membre_niveau,
'V_MEMBRE_NB_MESSAGES' => $message[$p]['membre_nb_message'],
'V_MEMBRE_INSCRIT_LE' => aff_date( $message[$p]['date_enregistrement'], 'j F Y'),
'V_POSTE_LE' => aff_date($message[$p]['message_temps']),
'V_MESSAGE' => $message_txt,
'IMG_EDITER' => ( $droits['droit_editer'] || ( $droits['membre_editer'] && $membre['membre_id'] == $message[$p]['membre_id'] ) ) ? '<a href="' . ajout_sid('poster.php?mode=editer&message=' . $message[$p]['message_id']) . '">' . sprintf($theme['img'], 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'edit.gif', $langue['img_editer'], $langue['img_editer']) . '</a>' : '',
'IMG_SUPPR' => ( ( $droits['droit_supprimer'] && ! $premier_message ) || ( $droits['membre_supprimer'] && $membre['membre_id'] == $message[$p]['membre_id'] && ! $premier_message )|| ( $droits['droit_supprimer'] && $premier_message && $sujet['nb_reponse'] == 0 ) ) ? '<a href="' . ajout_sid('moderation.php?mode=supprimer_message&message=' . $message[$p]['message_id']) . '">' . sprintf($theme['img'], 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'suppr.gif', $langue['img_suppr'], $langue['img_suppr']) . '</a>' : '',
'IMG_CITER' => ( $droits['droit_repondre'] ) ? '<a href="' . ajout_sid('poster.php?mode=reponse&sujet=' . $sujet_id . '&citer=' . $message[$p]['message_id']) . '">' . sprintf($theme['img'], 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'citer.gif', $langue['img_citer'], $langue['img_citer']) . '</a>' : '',
'IMG_MP' => '<a href="' . ajout_sid('poster.php?mode=message_prive&login=' . $message[$p]['membre_login']) . '">' . sprintf($theme['img'], 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'mp.gif', $langue['img_mp'], $langue['img_mp']) . '</a>',
'IMG_MAIL' => ( $message[$p]['membre_voir_mail'] ) ? '<a href="mailto:' . $message[$p]['membre_email'] . '">' . sprintf($theme['img'], 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'mail.gif', $langue['img_mail'], $langue['img_mail']) . '</a>' : ( $config['mail_par_forum'] ? '<a href="' . ajout_sid('profil.php?mode=mail&to=' . $message[$p]['membre_id']) . '">' . sprintf($theme['img'], 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'mail.gif', $langue['img_mail'], $langue['img_mail']) . '</a>' : '' )
));
if( $message[$p]['membre_id'] != INVITE )
{
$tpl->assign_block_vars( 'message.pas_invite', array() );
}
elseif( $message[$p]['membre_id'] == INVITE )
{
$tpl->assign_block_vars( 'message.invite', array() );
}
if( $membre['membre_aut'] == ADMIN )
{
$tpl->assign_block_vars( 'message.aut_voir_ip', array(
'L_IP' => $langue['ip'],
'V_MESSAGE_IP' => long2ip($message[$p]['message_ip'])
));
}
}
if ( $droits['est_modo'] )
{
$tpl->create_block('option_moderation');
}
$tpl->pparse('corps');
// On inclut le bas de la page
include( $racine . 'includes/footer_forum.php' );
?>
[/php]
Webmaster de l'Organisation Très Secrète








à placer dans thmes/GreyLine/images/fr/mp.gif)