CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Pour captain_torche:

jarose
jarose
Niveau 10
05 mars 2003 à 18:25:03

la dernière fois on avait parlé d´un système de "posts vues ou pas" pour nos forums

Chuis entrain de réfléchir la dessus, et c´est pas evident.

j´ai une idée mais c´est pas génial :

Créer une table "topic_read", un champ : "last_post_read" dans la table user, et un champ "last_post" dans la table messages.

A chaque fois qu´un user enregistré ouvre un thread, on regarde à quand remonte son dernier topic lu.
Si son dernier topic lu est inférieur au dernier post du topic -> image rouge.
Si son dernier topic lu est supérieur, -> query sur la table "topic_read" en fonction de son pseudo, si il y a un enregistrement à son nom pour le topic concerné -> image jaune, sinon image rouge et on incrémente la table avec son nom, la date et l´id du topic.

Après encore, query sur la table "topic_read", et on supprime tout les message dont la date est plus vielle de 3jours ( pour alléger la table...)

Tout ce merdier ça me prend 0.05secondes d´execution en local, donc ça va encore mais ça ne demande qu´à etre amelioré...

J´ai étudié le fonctionement d´un autre forum : XMB

Eux ils utilisent un système beaucoup plus simple mais vraiment pas efficace :
Si le topic a été posté y a moins de 24heures, on affiche rouge, mais si la date de la dernière visite de l´user est supérieur à la date du dernier post -> on affiche jaune.

Franchement c´est trop basic...

Dans les deux cas, le champ "last_post_read" de la table user est incrémenté pendant les stats ( qui est en ligne ? )

dans la table "online" on incrémente les users et les membres connectés avec leurs infos.
Pendant l´affichage des stats, on supprime tout les users dont leur dernière action remonte à + de 5minutes, -> si membre, on incrémente le champ "last_topip_read" de la table membre avec la date de sa dernière action.

Voilou, si t´as cherché, et que t´as une meilleur solution -> fais péter ; )

bobcolas
bobcolas
Niveau 9
05 mars 2003 à 20:38:44

Oulalalalalala ! !!^^ ! !! Je comprend rien au PHP ! !!

Aliojsa
Aliojsa
Niveau 9
05 mars 2003 à 20:39:25

La solution la plus simple reste d´utiliser les coockies non ?

jarose
jarose
Niveau 10
05 mars 2003 à 20:47:48

non : )

imagines le nombre de cookies qu´il faudrait ; )
et puis la bdd est obligatoire pour les stats et pour le champ "last_visit" de la table "users"

Aliojsa
Aliojsa
Niveau 9
05 mars 2003 à 21:01:31

Ah, moi j´y connais rien, je sais juste que mon phorum fonctionne avec des coockies pour ça.

un topic aussi ou j´ai vu ça, si ça peut t´interesser pour votre projet :
http://www.phpnet.org/forum/read.php?f=2&i=21623&t=21337

jarose
jarose
Niveau 10
05 mars 2003 à 22:39:30

pour les cookie, c´est pas important, la procédure avec ou sans cookie est la même.

sauf qu´au cookie, ça peut etre supprimé et perdu, tandis que sur le serveur non. Pis j´utilise pas les cookie à 100%, si un utilisateur n´accepte pas les cookie il peut se loguer avec un sid... donc ça doit obligatoirement être stocké sur le serveur.

Dans le topic que tu m´a filé les mec sont encore moins avancé que moi : )

bon j´viens d´avoir une autre idée mais j´ai pas le courage de me prendre la tête, trop de heineken ingurgitées...;)

captain_torche
captain_torche
Niveau 10
05 mars 2003 à 22:55:38

Effactivement, ça peut être sympa . ..
Je sais pas si y´a des "bugs" de fonctionnement, mais faudrait essayer, en tout cas.
Excuse de pas avoir répondu plus tôt, j´étais au restau : )

jarose
jarose
Niveau 10
06 mars 2003 à 20:23:37

T´as une autre idée ?

sinon pour la table "post_read", si on fait un enregistrement par post, la table risque d´être vite blindé...

donc, autre procédure, faire UN enregistrement par user, avec un champ type text ( on peut même faire le champ text dans la table user)

et on enregistrer les infos comme ça :
IDpost:Time|1:1527457554| etc...

pour le traitement de la chaine, j´adore ça : ) :

<?
/* $r -> TopicRead = le champ text */

$IDtopic = ´2´;
$TimeLastPost = ´24242422424´;
$TopicRead = ´´;

$split = explode(´|´, $r -> TopicRead);

for ( $i = 0; $i <= count($split); $i++)
{
$TopicRead . = $split[$i].´|´;

$split[$i] = explode(´:´, $split[$i]);

if ( $split[$i][0] == $IDtopic)
{
str_replace($split[$i][0], time(), $TopicRead)
$textid = ´ok´;
}
if ( $split[$i][1] < time())
{
str_replace($split[$i][0].´:´.$split[$i][1].´|´, ´´, $TopicRead)
}
}
$TopicRead = substr($TopicRead, 0, -1);

if ( !isset ( $textid))
{
$TopicRead . = ´|´.$IDtopic.´:´.time();
}
? >

pis après on met à jour le champ txt par $TopicRead

voilou, si tu te sert du code,vérif avant de copier, parceque j´viens de le taper comme ça à l´arrache ; )

jarose
jarose
Niveau 10
06 mars 2003 à 20:29:09

hum, après reflexion, j´trouve que c´est une putain de bonne technique avec le champ txt : )

captain_torche
captain_torche
Niveau 10
06 mars 2003 à 22:21:42

houlà, tu me perds, là . .. ze comprends pas tout : )

jarose
jarose
Niveau 10
07 mars 2003 à 13:06:55

Kesss tu comprends pas ? ; )

captain_torche
captain_torche
Niveau 10
07 mars 2003 à 13:32:23

On va dire . .. la moitié de ton code : )
Je suis pas un programmeur hors-pair, je connais juste les bases du php ( et un peu plus si affinités)
Les classes, par exemple, je connais pas encore : )

jarose
jarose
Niveau 10
07 mars 2003 à 13:51:42

Bon ok...

Si tu veux je remonterais ce topic, en t´expliquant comment faire, et en te donnant le code exact, t´auras juste à copier/coller.

captain_torche
captain_torche
Niveau 10
07 mars 2003 à 13:57:08

Faut surtout que je me mette à étudier le php plus en profondeur : )

captain_torche
captain_torche
Niveau 10
07 mars 2003 à 14:02:29

Mais, ton code, j´en comprends le principe, mais pas toutes les étapes : )

jarose
jarose
Niveau 10
07 mars 2003 à 14:30:23

imagines si j´avais fait ça avec des expressions régulière ; )

si tu veux approfondir tes connaissances du language et que t´as les bases, t´as pas grand chose à apprendre, à part te faire mal au crane... ; )

captain_torche
captain_torche
Niveau 10
07 mars 2003 à 14:35:07

Ben, ces temps-ci, c´est pas trop le moment ( j´ai pas mal de soucis, déjà, mais bon . ..)

Sinon, c´est sûr qu´il faut que je m´y mette : )

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment