Messages en double/triple sur le forum

Bug #447588 reported by xabilon on 2009-10-09
36
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Ubuntu-fr.org
Medium
Unassigned

Bug Description

Le bug des messages en plusieurs exemplaires continue. Les messages ont la même ID, donc si l'utilisateur tente d'en supprimer un, tous disparaissent.
Jusqu'à maintenant ça donnait des messages en double, maintenant ça commence à arriver en triple :
http://forum.ubuntu-fr.org/viewtopic.php?pid=2975476#p2975476

Une simple déco/reco du forum suffit à régler le problème, mais c'est quand même pas glop

Mathieu Marquer (slasher-fun) wrote :

Problème subséquent : si le nombre de messages affichés sur la page devient supérieur au nombre de messages affichables par page (à cause des messages en double), il est impossible d'accéder aux derniers messages postés (qui se trouvent alors sur la page 2... qui n'existe pas encore, et qui n'est pas accessible avec le paramètre p=2 dans l'URL).

Rapporté via http://forum.ubuntu-fr.org/viewtopic.php?pid=3057823#p3057823

Changed in ubuntu-fr-website:
status: New → Confirmed
xabilon (xabilon) wrote :

Un petit peu d'eau au moulin de la résolution de ce bug : les pseudos des comptes dont les messages apparaissent en double, apparaissent deux fois dans la "liste des utilisateurs connectés" sur la page d'index du forum.
Donc ils seraient connectés 2 fois ?

McPeter (mcpeter) wrote :

Personellement un simple Ctrl+R suffit chez moi pour faire disparraitre ces messages

uboops (oops66) wrote :

Je suis affecté aussi, et ce phénomène est particulièrement gênant dans les gros Topics (plusieurs pages) !

Kanor (rdubreil) wrote :

Alors je propose une pseudo solution. Elle consiste à rajouter un bonton déconnection dans le profile de l'utilisateur dans l'onglet administration. Il permet de supprimer les entrés de cet utilisateur dans la table online.
L'exemple est dans l'archive en piéce jointe

Kanor (rdubreil) wrote :

J'ai eu une idée pour résoudre le probléme de maniére plus direct au niveau de la page viewtopic.php
http://github.com/fluxbb/fluxbb/blob/fluxbb-1.2/upload/viewtopic.php
ligne 186
$result = $db->query(
'SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online
 FROM '.$db->prefix.'posts AS p
 INNER JOIN '.$db->prefix.'users AS u ON u.id=p.poster_id
 INNER JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id
LEFT JOIN '.$db->prefix.'online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0)
 WHERE p.topic_id='.$id.' ORDER BY p.id LIMIT '.$start_from.','.$pun_user['disp_posts'], true)
or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());

dans cette requête on a une jointure avec la table online la présence de multiconnexion vient de la présence de plusieurs ligne dans cette table donc quand on fait la jointure on a une multiplication des post
donc si on élimine cette jointure on aura plus ce problème quelque chose comme ça
$result = $db->query(
'SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, p.id AS is_online
 FROM '.$db->prefix.'posts AS p
 INNER JOIN '.$db->prefix.'users AS u ON u.id=p.poster_id
 INNER JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id
 WHERE p.topic_id='.$id.' ORDER BY p.id LIMIT '.$start_from.','.$pun_user['disp_posts'], true)
or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());

Mathieu Marquer (slasher-fun) wrote :

Pas réapparu depuis la migration, je ferme.

Changed in ubuntu-fr-website:
status: Confirmed → Fix Released
importance: Undecided → Medium
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers