Messages en double/triple sur le forum

Bug #447588 reported by xabilon
36
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Ubuntu-fr.org
Fix Released
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

Revision history for this message
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
Revision history for this message
fanfantasy7 (fanfantasy7) wrote :
Revision history for this message
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 ?

Revision history for this message
McPeter (mcpeter) wrote :

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

Revision history for this message
uboops (oops66) wrote :

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

Revision history for this message
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

Revision history for this message
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());

Revision history for this message
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  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.