Pages :
(reprise du message précédent)

Salut ,

J'espere que tu arrives à faire ce que tu voulais ...

Pour comprendre comment phpBB obtient les nouveaux messages, voici un exemple ou le membre a posté aujourd'hui (donc il s'est connecté) pourtant dans son profil la date de derniere connexion est d'hier (grosse erreur du webmaster par ailleurs).

Le sujet dans lequel il a posté :
http://www.sylvanimus.org/forum/viewtopic.php?p=23420#23420
La date de sa derniere connexion :
http://www.sylvanimus.org/forum/profile.php?mode=viewprofile&u=9

En fait, la mise à jour de la date se fait une session sur deux ... Smiley ravi

Smiley lol

PS : Exemple ephemere ...
Salut Champolion,

Pas mal l'exemple Smiley langue

Sinon, je pense que j'ai pût avancer un peu, même si je suis encore assez loin de la solution. En tout cas, il me paraît de plus en plus clair qu'il est presque impossible que ca fonctionne exactement comme je le voudrais.
Mais bon, j'essaie de m'en approcher le plus possible et on verra bien.

Merci encore
( ... et maintenant dans l'exemple plus haut, la date de derniere connexion du membre est identique à la date ou il a posté son message Smiley ravi Smiley murf ... )

Bonne chance et previent quand tu as fais une premiere ebauche ! Smiley biggrin
Après reflexion, j'ai décidé de faire un "mix" de fàçon à m'approcher un peu plus de ce que je veux.

Voilà ce que ca va donner :

Reprend la date de dernière visite contenue dans le cookies.
Cette date est mise à jour sur chaque page.
Compare cette date avec celles des messages inscrits.
Retient l'id des messages non encore lus dans une variable de session.
Une fois que l'un de ces messages est lu, son id disparaît de la variable de session.

Finalement, je ne vais utiliser cette option que pour les utilisateurs enregistrés.

Défauts :
ca utilise toujours un cookie. Je me vois mal enregistrer la date dans la db à chaque page visitée.
Si tu veux enregistré dans la base de donnée les differents sujets lues par intervals de connexion, tu peux utiliser la fonction implode().

Celle-ci decoupe, à la maniere d'un fichier CSV, une chaine de caractere par rapport à un motif donné, exemple :

<?php

$Ids = '1984;1878;1765';
$TabIds = implode(';' $Ids);
print_r($TabIds);

?>

Retour~ :
Array('1984', '1878', '1765');

Et apres:
// Boucle de Traitement de l'affichage des Ids...
if(in_array($Id, $TabIds)) {
 // message lu !
}

?>


Avec ceci, tu peux facilement utiliser un enregistrement dans ta bdd par membre ... Smiley biggrin
Modifié par Champolion (18 Sep 2005 - 21:49)
Salut Champolion,

En réalité, moi, j'utilise explode() mais apparement le principe est le même.
En réalité, ce qui m'ennuie, c'est que, si je ne me trompe pas, ce sont les accès à la base de données qui sont les plus longs.
Je voudrais garder une bonne vitesse sur le site.

RedOx
bonjour,

j'indique "résolu" parce que c'est en bonne voie et que je ne veux pas encombrer inutilement le forum.

Merci encore à tous,

à bientôt,

RedOx
Effectivement çà me parait hard de faire un update de la base à chaque page pour chaque user...

Perso je stock la valeur pour chaque page dans un cookie d'une part pour pouvoir le retrouver plus tard..... (j'y reviens)

et dans une variable de session... c''est rapide et par cher . c'est cette variable que j'utilise comme valeur pour les tests

quand mon visiteur quite le site il part avec son cookie. avec dedans la date de la dernière page vue...

et quand il revient au moment ou il se log, j'update la base avec la valeur du cookie...
comme çà j'ai une trace si il dégage le cookie dans les jours suivants ...

donc si pas cookie quand il arrive alors valeur de la base.

et si il n'accepte pas les cookies...

la seule date que j'ai et la date d'arrivé sur le site pour chaque session.
Pages :