[php]Forum Last Visit

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Roa
  • Registratie: December 2002
  • Laatst online: 03-07-2024
Hello agian,

Voor de mensen die het nog weten, ik ben eruit met mijn smilie probleem, indien gewenst post ik het script + oplossing nog wel even ;)

Maar nu wat anders, dat smilie script word een onderdeel van een forum waar ik mee bezig ben. En daar heb ik nu een probleempje...

Op een goed forum kan je zien of er nieuwe reacties zijn in de tijd dat je weggeweest bent, of dat je in een ander topic zat.

Het tweede is niet zo heel moeilijk, gewoon een tabel aanmaken met session_time waarin je opslaat als je op het forum verschijnt. Alhoewel je dan nog moet gaan kijken of iemand al in een topic geweest is of niet (voor het newe post icootje) en dat kan niet door de laatste post in een topic te vergelijken met de session_time, omdat je die iedere keer dat je van pagina veranderd moet updaten, terwijl je nog steeds niet in dit topic geweest bent. Pfff...Ingewikkeld verhaal, hoop dat jullie die vast snappen.

Het eerste is moeilijker, last_visit moet je aanpassen zodra de user het forum verlaat, maar hoe je hier aan moet komen?

Ik hoop dus dat jullie ervaring en ideeën kunnen posten, om mij een beetje op weg te helpen ;)

Research is what I'm doing when I don't know what I'm doing.


Acties:
  • 0 Henk 'm!

  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 17-09 20:43
Als ik denk dat ik je begreip is het zo.

Je lastvisit sla je gewoon op met time(); , ook de andere tijden sla je op met time();, die kun je later weer omzetten met date(); dacht ik, zo kun je if $lastvisit > $topictime then $topicread = TRUE; of iets dergelijks.

Snap ik je goed?


Ik sla altijd alles op (tijden, datums) met time (vanaf 1970 is dat), en die zet ik later dan altijd weer om, zo kun je makkelijk vergelijken :)

Acties:
  • 0 Henk 'm!

  • Roa
  • Registratie: December 2002
  • Laatst online: 03-07-2024
Jah, zover was ik al ;)

Maar het probleem van jou functie
PHP:
1
2
3
4
5
if($last_visit > $topictime){
$topicread = true;
}else{
$topicread = false;
}


Heeft het volgende probleem: $lastvisit word pas aangepast als je het forum verlaat (in theorie) dus dat topic blijft true gemerkt. Terwijl je er al in geweest ben...

Research is what I'm doing when I don't know what I'm doing.


Acties:
  • 0 Henk 'm!

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
als je forum verlaat :? hoe wou je dat doen?

Acties:
  • 0 Henk 'm!

Verwijderd

Kan je niet gewoon elke keer als een user iets opvraagt die $lastvisit opnieuw opslaan?

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
wat je moet doen is gewoon een cookie zetten, met het id van het topic en de huidige timestamp
en dan in je tabel nagaan hoeveel replies een nieuwere timestamp hebben

Acties:
  • 0 Henk 'm!

  • Roa
  • Registratie: December 2002
  • Laatst online: 03-07-2024
Ja, daar had ik ook nog geen ideeën voor :?

Maar goed, eerst dat andere probleem dan maar ;)

Hoe kunnen we kijken of een user al in het topic is geweest, of niet

\edit
wat je moet doen is gewoon een cookie zetten, met het id van het topic en de huidige timestamp
en dan in je tabel nagaan hoeveel replies een nieuwere timestamp hebben
Opzich leuk, maar als er 10 (tis redelijk veel, maar et kan wel) topics met newe replies zijn, moet ik dus tien cookies maken en uitlezen :S

[ Voor 52% gewijzigd door Roa op 11-03-2003 22:43 ]

Research is what I'm doing when I don't know what I'm doing.


Acties:
  • 0 Henk 'm!

Verwijderd

Ik ben zelf ook met een forum bezig en ik heb de volgende oplossing bedacht:

Je houdt een record bij van wie er ingelogd is mbv timestamps.
Je geeft een timeout tijd aan, die tel je op bij de huidige timestamp en die vergelijk je met de timestamp van de login sessie.
Elke keer als je een pagina bezoekt vernieuw je die timestamp van die sessie,
zodra je nix doet vernieuwt de timestamp niet en op een gegeven moment ga je over die timeout heen en is de user inprinciepe niet meer online.

Als je die timestamp outhoudt en bij het opnieuw inloggen van de gebruiker die oude timestamp erbij pakt en dat met alle replies vergelijkt zie je wat nieuw is.

De user ververst steeds zijn timestamp door te browsen maar de oude timestamp blijft gelijk.
Als de user later weer time-out of gewoon geen paginas meer bezoekt dan wordt zijn huidige timestamp de "oude" timestamp en kun je die gebruiken als je weer opnieuw inlogt.

Je houdt ff een temp tabletje bij om de threads aan te geven die je bezocht hebt in je sessie en die gooi je bij het verlopen van de sessie weer leeg.

Ik hoop dat je hier wat aan hebt :)
Als je het niet begrijpt mail of contact me dan ff op MSN, je mag wel wat code inkijken :)

Acties:
  • 0 Henk 'm!

  • Roa
  • Registratie: December 2002
  • Laatst online: 03-07-2024
Dat zou ik leuk vinden, als ik je adres weet ;)

Ik heb nl wel wat vragen aan je...
Kan je niet gewoon elke keer als een user iets opvraagt die $lastvisit opnieuw opslaan?
Ja en nee, het zou wel kunnen, maar wat phex ook zegt: je moet gewoon de $session_time opslaan als $last_visit indien een user niet actief is voor een bepaalde tijd. Maar het gaat erom dat je moet weten welke topic een icootje moeten hebben van New Reply en welke niet.

Research is what I'm doing when I don't know what I'm doing.


Acties:
  • 0 Henk 'm!

Verwijderd

Mijn msn gegevens staan in me profiel nu :)

Acties:
  • 0 Henk 'm!

  • Roa
  • Registratie: December 2002
  • Laatst online: 03-07-2024
K, ik heb je toegevoegd, ik ga nu alleen pitten ;)
Alvast bedankt though!

edit

Zijn der nog andere mensen die zelf een forum hebben en dat probleem met gelezen/ongelezen topic opgelost hebben? Zoja, zouden die hun ervaringen willen posten? Hoe hebben jullie het aangepakt..?

PHPBB bijvoorbeeld, die update de session_time iedere keer als je van pagina wisselt (bij iedere link dus), maar toch weet hij welke topics een 'nog niet gelezen' ico moeten hebben....

[ Voor 93% gewijzigd door Roa op 12-03-2003 15:05 ]

Research is what I'm doing when I don't know what I'm doing.


Acties:
  • 0 Henk 'm!

  • Roa
  • Registratie: December 2002
  • Laatst online: 03-07-2024
kickje.

Ik kom er met phex nog niet helemaal uit, dus ik hoop dat andere mensen me nog kunnen helpen!

Wat misschien handig is, is dat er bij inloggen (of gewoon op de index) gekeken word welke topics een post hebben met een latere tijd dan last_visit. Dan sla je ergens op welke topics dit zijn, en als de user daar is geweest kan je die lijst weer updaten. Maar hoe dit bijgehouden moet worden....Iemand suggesties?

Research is what I'm doing when I don't know what I'm doing.

Pagina: 1