Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Pages : 1
Après avoir installé quelques mods (couleur groupes, en ligne aujourd'hui, record connectés, JS MENU), je me suis aperçu d'un sale bug en bas de mon forum.
Les deux screens sont effectués en local, sur mon PC, sous Firefox 3.
Le premier en étant connecté en Admin, le second en étant déconnecté..
Voici le code, apparemment, concerné:
<?php
if ($pun_config['o_users_online'] == '1')
{
// Fetch users online info and generate strings for output
$num_guests = 0;
$users = array();
$result = $db->query('SELECT user_id, ident, color FROM '.$db->prefix.'online WHERE idle=0 ORDER BY ident', true) or error('Impossible de retrouver la liste des utilisateurs en ligne', __FILE__, __LINE__, $db->error());
while ($pun_user_online = $db->fetch_assoc($result))
{
if ($pun_user_online['user_id'] > 1)
$users[] = "\n\t\t\t\t".'<dd><a href="profile.php?id='.$pun_user_online['user_id'].'"><span style="color: '.$pun_user_online['color'].'">'.pun_htmlspecialchars($pun_user_online['ident']).'</span></a>';
else
++$num_guests;
}
$num_users = count($users);
// utilisateurs en ligne aujourd'hui
$todaystamp = strtotime(date('Y-m-d'));
$result = $db->query('SELECT u.username, u.id, u.last_visit, g.g_color FROM '.$db->prefix.'users AS u JOIN '.$db->prefix.'groups AS g ON (g.g_id=u.group_id) WHERE u.last_visit >= \''.$todaystamp.'\' ORDER by u.last_visit DESC') or error('Impossible de retrouver la liste des utilisateurs en ligne aujourd\'hui', __FILE__, __LINE__, $db->error());
$users_today = array();
while ($pun_user_online_today = $db->fetch_assoc($result))
$users_today[] .= "\n\t\t\t\t".'<dd><a href="profile.php?id='.$pun_user_online_today['id'].'" title="Dernière visite de '.pun_htmlspecialchars($pun_user_online_today['username']).' : '.format_time($pun_user_online_today['last_visit']).'"><span style="color: '.$pun_user_online_today['g_color'].'">'.pun_htmlspecialchars($pun_user_online_today['username']).'</span></a>';
$num_users_today = count($users_today);
require_once PUN_ROOT.'include/cache.php';
if($num_users > floatval($pun_config['o_max_users_online']))
{
$db->query("UPDATE ".$db->prefix."config SET conf_value = '".$num_users."' WHERE conf_name = 'o_max_users_online'");
echo $lang_index['Max users online'].": <strong>".$num_users."</strong>\n";
generate_config_cache();
require PUN_ROOT.'cache/cache_config.php';
}
else
echo $lang_index['Max users online'].": <strong>".$pun_config['o_max_users_online']."<br></strong>\n";
echo "\t\t\t\t".'<dd>'.$lang_index['Users online'].': <strong>'.$num_users.'</strong></dd>'."\n\t\t\t\t".'<dd>'.$lang_index['Users today'].': <strong>'.$num_users_today.'</strong></dd>'."\n\t\t\t\t".'<dd>'.$lang_index['Guests online'].': <strong>'.$num_guests.'</strong></dd>'."\n\t\t\t".'</dl>'."\n";
if ($num_users > 0)
echo "\t\t\t".'<dl id="onlinelist" class= "clearb">'."\n\t\t\t\t".'<dt><strong>'.$lang_index['Online'].': </strong></dt>'."\t\t\t\t".implode(',</dd> ', $users).'</dd>'."\n\t\t\t".'</dl>'."\n";
echo "\t\t\t".'<dl id="onlinetodaylist">'."\n\t\t\t\t".'<dt><strong>'.$lang_index['Online today'].' : </strong></dt>';
if ($num_users_today > 0)
echo implode(',</dd> ', $users_today).'</dd>'."\n\t\t\t".'</dl>'."\n";
else
echo '<dd><em>'.$lang_index['None'].'</em></dd>'."\n\t\t\t".'</dl>'."\n";
}
else
echo "\t\t".'</dl>'."\n\t\t\t".'<div class="clearer"></div>'."\n";
?>Si quelqu'un voit ce qui cloche...Je le remercierais infiniment car perso j'y ai passé la soirée... 
Hors ligne
Une fois les erreurs de validation corrigée (facile), on y verra plus clair (certainement une balise mal fermée..).
Hors ligne
En déconnecté (avec le bug donc), ça donne ceci lorsqu'on affiche la source avec Firefox:
<div id="brdstats" class="block">
<h2><span>Informations Forums</span></h2>
<div class="box">
<div class="inbox">
<dl class="conr">
<dt><strong>Statistiques Forums</strong></dt>
<dd>Nombre total de membres : <strong>2</strong></dd>
<dd>Nombre total de discussions : <strong>2</strong></dd>
<dd>Nombre total de messages : <strong>4</strong></dd>
</dl>
<dl class="conl">
<dt><strong>Informations utilisateurs</strong></dt>
<dd>Dernier utilisateur inscrit : <a href="profile.php?id=3">user</a></dd><br>
Record du nombre de membres en ligne: <strong>1<br></strong>
<dd>Membres en ligne : <strong>0</strong></dd>
<dd>Membres aujourd'hui: <strong>1</strong></dd>
<dd>Invités en ligne : <strong>1</strong></dd>
</dl>
<dl id="onlinetodaylist">
<dt><strong>En ligne aujourd'hui : </strong></dt>
<dd><a href="profile.php?id=2" title="Dernière visite de Admin : Aujourd'hui 00:56:15"><span style="color: #FF0000">Admin</span></a></dd>
</dl>
</div>
</div>
</div>J'ai bien vérifié les balises (ainsi que toutes celles de la page (en comptant le nombre de div ouverts / fermés, etc..) et je n'en vois aucune mal fermée ! 
Hors ligne
Le problème se situe au niveau de ce code:
<dl id="onlinelist" class= "clearb">
<dt><strong>Actuellement en ligne : </strong></dt>
<dd><a href="profile.php?id=2"><span style="color: #FF0000">Admin</span></a></dd>
</dl>Il s'affiche lorsqu'on est connecté mais pas que l'on ne l'est pas.
Du coup j'ai supprimé ceci dans mon index.php:
if ($num_users > 0)Et le problème est maintenant résolut, seulement lorsqu'on est pas connecté et qu'il n'y a pas de connecté, eh bien il n'y a rien après "Actuellement en ligne: "...
Hors ligne
Résolu ou pas, le lien forum pointe désormais sur une erreur 500...
Impossible donc de fournir une analyse du problème.
En tout état de cause, si les erreurs de validation mentionnées ci-dessus n'ont pas été corrigées, C'EST MAL...
Le forum étant valide par défaut, TOUS les ajouts éventuels DOIVENT être valides (et c'est une condition préalable à une demande d'aide sur ce forum...).
Hors ligne
Le lien de mon forum dans mon profil, je ne vois pas que ça vient faire là puisque j'ai dis que mon problème était sur un forum installé en local.
Pour les erreurs de validations, je ne comprends pas, tu parle de la validation xhtml / css ?
Mon problème est de toute façon réglé mais c'est vrai que si en plus je peux corriger les erreurs de validations, ce ne peut être que bénéfique.
Hors ligne
Pages : 1