Toon posts:

[PHP] nieuwe topics sinds laatste bezoek

Pagina: 1
Acties:
  • 172 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik ben zelf een forum aan het maken, alleen wil ik zoals hier op GoT de nieuwe posts een ander folder icoon geven.. :)
Alleen lukt het niet erg.

Ik heb ergens hier gelezen dat dit zou werken:

global.php
PHP:
1
2
3
4
5
6
7
8
if (isset($HTTP_COOKIE_VARS['lastvisit'])) {
    $cva = $HTTP_COOKIE_VARS['lastvisit'] + 600;
} else {
    setcookie("lastvisit",time());
}
if($cva < time()) {
    setcookie("lastvisit",time());
}


en

forum.php
PHP:
1
2
3
4
5
6
7
$lv = $HTTP_COOKIE_VARS['lastvisit'];
    if ($list->lastpost > $lv) {
        $img = "[img]images/board/on.gif[/img]";
    } else {
        $img = "[img]images/board/off.gif[/img]";
    }
}


Het werkt bijna, alleen als je naar het forum gaat, en er zijn nieuwe posts en dan 2 x refreshed, zijn de nieuwe posts weg :(

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Als het nieuwe bezoek binnen de in de lastvisit gestelde termijn valt de lastvisit niet updaten :)

Je zou zelfs twee tijden bij kunnen houden, 'effective last visit' en 'real last visit'
Als je dan steeds de real last visit op de huidige tijd zet en kijkt of het vorige bezoek niet meer dan 300 seconden (ofzo) terug was, dat je dan de effective last visit niet bijwerkt, maar de real last visit wel.

Verwijderd

Topicstarter
argh, ik snap het nog niet helemaal.. mijn hersennen kunnen dit niet aan :P
Iemands anders nog wat voorbeelden mischien? :)

Verwijderd

Verwijderd schreef op 20 september 2002 @ 15:38:
argh, ik snap het nog niet helemaal.. mijn hersennen kunnen dit niet aan :P
Iemands anders nog wat voorbeelden mischien? :)
PHP:
1
2
3
4
5
6
7
8
if ($lastvisit + 600 < mktime())
{
// niet $lastvisit updaten
}
else
{
// hier wel de $lastvisit updaten
}


Zoiets?

Verwijderd

Topicstarter
Owk, ik heb nu dit:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
session_start();

session_register("lastvisit2");

if (isset($HTTP_COOKIE_VARS['lastvisit1'])) {
} else {
    setcookie("lastvisit1",time());
}

$lastvisit2  =   $HTTP_COOKIE_VARS['lastvisit1'];

if ($list->lastpost > $lastvisit2 and $lastvisit2 != "") {
    $img = "[img]images/board/on.gif[/img]";
} else {
    $img = "[img]images/board/off.gif[/img]";
}

Dat werkt, alleen de nieuwe topics blijven nieuw totdat je opnieuw je browser afsluit.. hoe maak ik de topics oud na bv 10 minuten?

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 21-08 06:33

Tux

Verwijderd schreef op 20 september 2002 @ 01:13:

PHP:
1
2
3
4
5
6
7
8
if (isset($HTTP_COOKIE_VARS['lastvisit'])) {
    $cva = $HTTP_COOKIE_VARS['lastvisit'] + 600;
} else {
    setcookie("lastvisit",time());
}
if($cva < time()) {
    setcookie("lastvisit",time());
}
Eej die var $cva komt me wel heel bekend voor ;)
* Tux opent W:\forum\index.php en ja het staat er :P

Maar ik heb ook nog wat probleempjes met dat stukje code :)

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


  • simon
  • Registratie: Maart 2002
  • Laatst online: 21-08 13:41
Verwijderd schreef op 20 september 2002 @ 21:21:
Owk, ik heb nu dit:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
session_start();

session_register("lastvisit2");

if (isset($HTTP_COOKIE_VARS['lastvisit1'])) {
} else {
    setcookie("lastvisit1",time());
}

$lastvisit2  =   $HTTP_COOKIE_VARS['lastvisit1'];

if ($list->lastpost > $lastvisit2 and $lastvisit2 != "") {
    $img = "[img]images/board/on.gif[/img]";
} else {
    $img = "[img]images/board/off.gif[/img]";
}

Dat werkt, alleen de nieuwe topics blijven nieuw totdat je opnieuw je browser afsluit.. hoe maak ik de topics oud na bv 10 minuten?
offtopic:
Verander session_register("lastvisit2"); ff naar:
$_SESSION['lastvisit2'] = "$var";


Cookies en sessions tegelijk??? Doe alles met sessions...

|>


Verwijderd

Topicstarter
Jackabuzah schreef op 20 september 2002 @ 21:26:
[...]


offtopic:
Verander session_register("lastvisit2"); ff naar:
$_SESSION['lastvisit2'] = "$var";


Cookies en sessions tegelijk??? Doe alles met sessions...
Maar hij moet je last visit toch weten als je alle browser heb geclosed? dat gaat toch niet met sessions?
er wordt een session gemaakt van het cookie, en die word gebruikt.

Verwijderd

Ik veronderstel dan dat je PER topic een cookje moet aanmaken?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 21 April 2003 @ 15:01:
Ik veronderstel dan dat je PER topic een cookje moet aanmaken?
Waarom zo een gruwelijke trap voor 1 kort zinnetje? Kan alleen maar verwarring opleveren..

Enfin, 1 cookie, en niet PER topic. Je weet wanneer een topic gemaakt is. Je weet wanneer je voor het laatst geweest bent. Alle topics die na je laatste bezoek gemaakt zijn, zijn nieuw.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Twan V
  • Registratie: Oktober 2001
  • Laatst online: 11-08 11:46

Twan V

...en er stralend uitzien

uch... stof op deze thread...
wel interessant om nog eens door te lezen

edit:
En weer zijn ze me net voor :(

[ Voor 23% gewijzigd door Twan V op 21-04-2003 15:07 . Reden: net niet snel genoeg ]

Blaat het niet dan schaadt het niet...
Reflex Discoshow - Het beste wat je bruiloft kan overkomen


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

Roa

Hmm, ik heb het heeeeel anders opgelost, misschien niet efficiënt, maar wel super effectief!!

Ik heb script dat een sessie aanmaakt, niet een sessie van de browser, of met cookies (er worden wel cookies gebruikt, maar het is niet nodig) maar er wordt een row gemaakt in de database met de session id, user id, session_time, session_start_time.

Als de user weg gaat zonder uit te loggen, blijft de sessie row dus staan. Zodra men weer op het forum komt wordt de oude sessie verwijderd, de session_time opgeslagen als last_visit en een nieuwe sessie gemaakt.

Dan heb ik nog een script dat controleerd of er topics zijn die nieuwer zijn dan last_visit. Zo ja: maak voor ieder topic een rij aan met topic_id, forum_id, session_id, en, uhm..nog wat, et gaat om het idee natuurlijk! Als je dan in een topic komt, wordt de betreffende row verwijderd. Maar, en nu komt het, als je in een forum komt, waarin nieuwe berichten zijn gepost NADAT er is ingelogd (dus terwijl je bijvoorbeeld in een ander topic zit ofzo..) dan worden er voor alle topics waarin nieuwere posts staan ook weer rijen aangemaakt. Dat werkt dus met session_time. Die wordt namelijk op iedere pagina geupdate, waardoor er precies kan worden bijgehouden welke posts nieuwer zijn de sessie.

Zo, en daar ben ik zeer lang mee bezig geweest, om het allemaal werkend te krijgen...

[ Voor 7% gewijzigd door Roa op 21-04-2003 17:31 ]

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

Pagina: 1