Topic: Jag får fan inte rätt på det här :-)

Jag blir snart tokig. Jag fattar inte hur jag ska få rätt på det här med att visa vilka forum/trådar som innehåller nya posts sen den förra besöket. Den kod jag har nu fungerar inte så bra. Som det är nu funkar det såhär:

- I varje användares cookie finns bland annat de tre variablerna lastaction, lasttimeout och savetimeout.

- Varje gång man tittar på en sida uppdateras lastaction i användarens cookie.

- Om (lastaction+cookietimeout < nu) har användaren "time:at" ut och då sätts lasttimeout till nu och savetimeout blir det gamla värdet på lasttimeout.

- När sen användaren tittar på en sida jämförs variabeln lastpost för forumet/tråden mot savetimeout i användarens cookie och om lastpost är senare visas en liten ikon.

Orsaken till att det inte kollas mot lasttimeout kan jag för tillfället inte förstå. Jag vet att jag hade en mycket god anledning att göra det så, men just nu är hela mitt huvuds innanmäte som kalaspuffar. Är det någon som känner sig lite pigg i skallen och kan tänka ut hur det skulle kunna fungera?

Som det är nu buggar det ibland. Om jag t.ex. skriver ett inlägg på kvällen och sen inte återvänder förrän på morgonen kommer mitt inlägg från kvällen visas som "nytt". Det blir så med tanke på att jag kollar mot savetimeout och inte lasttimeout. Varför jag gör detta kan jag som sagt inte fatta. Jag vet iaf att det inte funkar bra om man skiter i savetimeout och uteslutande uppdaterar lasttimeout och kollar mot den. Jag ska tänka lite nu och försöka komma på varför det inte är bra.

"Programming is like sex: one mistake and you have to support it for the rest of your life."

Re: Jag får fan inte rätt på det här :-)

Kom igen nu! Visa att ni har lite gråa celler :-)

"Programming is like sex: one mistake and you have to support it for the rest of your life."

Re: Jag får fan inte rätt på det här :-)

öööhh, jag tröttnade efter första raden wink

4

Re: Jag får fan inte rätt på det här :-)

Jadu, fattar inte heller varför du använder savetimeout, men du hade säkert en bra anledning smile

Jag kommer kanske på nåt senare...

Ring brother, ring for me | Ring the bells of hope and faith
Ring for my damnation | I am at the gallows end

Re: Jag får fan inte rätt på det här :-)

Jag kom på varför jag gjorde så innan, men jag tror samtidigt jag kom på lösningen! Om det funkar nu tänker jag inte berätta vad det var jag gjorde fel. Det är för pinsamt :-)

"Programming is like sex: one mistake and you have to support it for the rest of your life."

Re: Jag får fan inte rätt på det här :-)

lol..  big_smile

Re: Jag får fan inte rätt på det här :-)

Tja, det verkar funka bättre nu iaf :-)

"Programming is like sex: one mistake and you have to support it for the rest of your life."

Re: Jag får fan inte rätt på det här :-)

berätta nudå tongue

Jasså?

Re: Jag får fan inte rätt på det här :-)

Kennel wrote:

Jag kom på varför jag gjorde så innan, men jag tror samtidigt jag kom på lösningen! Om det funkar nu tänker jag inte berätta vad det var jag gjorde fel. Det är för pinsamt :-)

har man inte sagt A får man säga B, det vet vi ju alla big_smile

berätta nu smile

10

Re: Jag får fan inte rätt på det här :-)

Kan det vara så att du kollade mot både savetimeout OCH lasttimeout och sedan jämförde tiderna? Men vad vet jag, jag kan ingenting.....=D

"The size of your external organ is the opposite of that of your harddrive, I have a harddrive the size of cluster..." - TheTBoneGuy

11

Re: Jag får fan inte rätt på det här :-)

Kennel Kennel Kennel.... berätta nu för oss big_smile

Re: Jag får fan inte rätt på det här :-)

enda tråden kennel inte svarat i på länge wink

Re: Jag får fan inte rätt på det här :-)

/me tittar bort.

"Programming is like sex: one mistake and you have to support it for the rest of your life."

Re: Jag får fan inte rätt på det här :-)

hoho
esch come an. berätta vad det var så vi slipper ligga sömnlösa om nätterna.. det e farligt att bara säga A och inte B. du vet det va?

15

Re: Jag får fan inte rätt på det här :-)

Berätta, annars blir det revolt på ditt forum!!!

4B 65 6E 6E 65 6C 20 65 20 65 6E 20 67 61 6E 67 73 74 65 72

Re: Jag får fan inte rätt på det här :-)

You wish :)

"Programming is like sex: one mistake and you have to support it for the rest of your life."

Re: Jag får fan inte rätt på det här :-)

Nej, nu är det dags för dig att berätta :D

"Tack Sverige! Vi ses!"

18

Re: Jag får fan inte rätt på det här :-)

Revolten har redan börjat i hemlighet...

4B 65 6E 6E 65 6C 20 65 20 65 6E 20 67 61 6E 67 73 74 65 72

Re: Jag får fan inte rätt på det här :-)

Kennel, du skulle inte lite snabbt bara kunna visa lite i stora drag hur du gör i dagsläget för att lösa detta? Har suttit ett bra tag för att kolla på detta nu, men jag får det inte riktigt att fungera.

Som jag gör nu så använder jag cookies och lagrar ett nytt värde med "nu" för varje tråd jag går in på. Sedan jämförs cookies-värdet med LastPost på tråden.

Dock är väl inte detta en så bra lösning? Det fungerar iaf, men vad händer när man går in på mååååååånga trådar? En cookie kan väl bara lagra max 4k (möjligvis mindre beroende på läsare / egna inställningar osv). Visst, det kanske låter mycket, men lagrar man ett nytt värde för varje tråd så blir det nog ganska mycket till slut.

Några tips på hur jag skall göra? Skulle vara smart att använda databasen ist för cookies, då det även fungerar på andra datorer, men jag får det inte riktigt att fungera heller.

Har försökt alldeles för länge på samma spår nu för att kunna komma på något nytt, så det skulle vara oerhört bra om du (eller någon annan) kunde dra lite snabbt hur man skall göra.

"Tack Sverige! Vi ses!"

Re: Jag får fan inte rätt på det här :-)

Tja, jag har ju valt en enklare modell och håller inte reda på när varje enskild tråd har blivit läst. Min metod är alltså lite dummare, men också mycket enklare att implementera (vBulletin fungerar på samma sätt). Så som du har gjort är lite jobbigare och jag tror bestämt att PhpBB fungerar ungefär som du skrev. Om kakan blir för stor tar de helt enkelt bort ett antal trådar från den. Jag vet inte exakt hur de gör detta, men tanka hem sourcen till PhpBB och ta en titt. De använder ju sessions för den här informationen, så en sak du får göra annorlunda är att rensa din kaka om det gått en viss tid sedan senaste besöket. Detta för att "gammal" sidvisningsdata inte ska stanna kvar i kakan långt efter att tråden blev läst senast.

Ett alternativ är att lagra informationen i users-tabellen, men det innebär att man måste köra en update på users-tabellen vid varje sidvisning och det kan nog påverka prestanda en del om det är mycket folk i forumet. En update i t.ex. MySQL resulterar nämligen väldigt ofta i en låsning av hela tabellen och då måste övriga klienter vänta tills uppdateringen är klar.

"Programming is like sex: one mistake and you have to support it for the rest of your life."

Re: Jag får fan inte rätt på det här :-)

Okey, jag får ta en titt på hur phpBB fixar detta.

Tror dock att jag kommer att göra som du har nu, det blir mycket enklare så :)

"Tack Sverige! Vi ses!"