2011-10-04 10 views
2

Je stocke un cookie pour l'utilisateur s'il a vu le fil - le cookie contient le temps unix du dernier message dans chaque thread, puis je compare l'heure entre les données de cookie réelles et le discussions dernière publication.La façon de lire beaucoup de cookies

Chaque forum sympa, a une page par défaut avec des sections et des listes de forums. Maintenant, comment lire ces cookies, j'ai été stocké pour un tel poste dans chaque thread d'un forum?

Je pensais à quelque chose comme:

foreach($threads as $thread) { 
if($_COOKIE[@PREFIX."_thread".$thread['id']] < $thread['lastpost']) 
    //do action , in case if there are some new posts 
else 
    //do action, in there aren't new posts. 
} 

Je vais devoir analyser maintenant 10 et plus tard même des milliers de fils. Cela va-t-il faire beaucoup de mal aux performances du serveur?

Répondre

2

Je ne pense pas que ce soit un bon moyen de le faire en raison du fait qu'aucun logiciel de forum ne le fait. Pour un, si l'utilisateur efface les cookies, ou utilise un navigateur différent, tout cela sera perdu.

En supposant que vous ayez un thread et une table utilisateur, j'ajouterais une autre table pour enregistrer quand ils ont vu ce thread pour la dernière fois.

TABLE user_thread_view 
{ 
    thread_id 
    user_id 
    created (timestamp) 
} 

Puis, quand vous tirez la liste des discussions sur ce forum (qui est 10-20 par page), vous pouvez ajouter un appel dans cette table pour voir si le match « créé » pour cet utilisateur et le fil est inférieur au dernier last_modified du thread.

+0

Oui, ce serait bien. Mais gardez à l'esprit que les invités peuvent également voir le forum et les discussions. Qu'est-ce que je dois faire dans ce cas? – Lucas

+1

Vous ne suivez pas les nouveaux threads pour les invités, car ils sont tous nouveaux pour les invités. – Xeoncross

+0

Pas vraiment. Regardez tout comportement du moteur de forum comme myBB ou vBulletin, aussi punBB. – Lucas

Questions connexes