Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ilość wyświetleń tematu w forum
LordRaven
post 7.01.2011, 21:06:02
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 28.03.2009

Ostrzeżenie: (0%)
-----


Witam,
Piszę sobie forum w cake`u wszystko prawie już gotowe, muszę teraz zrobić ilość wyświetleń danego tematu.
Jak najlepiej to zrobić?

Ilość wyświetleń będzie oczywiście zapisywana do bazy, przy wejściu na dany temat rekord będzie powiększany o 1.
Ale jak to teraz najlepiej zabezpieczyć by co każde odświeżenie strony nie liczyło się jako nowe wyświetlenie.
IP raczej się będę zapisywał, bo za dużo by się tego nazbierało.
Więc pozostają tylko ciasteczka. ale czy da się zapisać tablice do ciasteczka za pomocą serializacji ?

Co radzicie dzięki za podpowiedzi

Ten post edytował LordRaven 7.01.2011, 21:07:26
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
thek
post 7.01.2011, 21:59:23
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Zależy co masz na myśli gdy chcesz odporności na odwieżanie. Czy jeśli user wejdzie na ten sam temat po godzinie to liczy jako nowe wejście czy nie? A może po 1-2 niach już będzie ok? Jaki można pomysł wykorzystać przy ciastach (bazie, whatever)? To tylko luźna uwaga oczywiście...
Bierzesz tworzysz tablicę gdzie przechowujesz id_tematu jako klucz i jako wartość timestamp ostatnich odwiedzin. Przy odwiedzaniu każdego tematy lub dowolnej akcji usera w ciachu usuwasz wszystkie klucze starsze niż akceptowalny limit (inaczej ciastko byłoby ogromne). Odwiedzając jakiś temat sprawdzasz czy jego id już istnieje w ciasteczku. Jeśli nie to do tematu dodajesz 1 przy odwiedzinach oraz walisz do tablicy id tematu i timestamp odwiedzin. Jeśli istnieje to sprawdzasz timestamp. Jeśli jakimś cudem przekracza akceptowalny limit możesz dodać 1 do licznika, a jeśli nie to olewka. Tak czy inaczej aktualizujesz timestamp dla tego tematu. Dzięki temu temat lubiany przez usera nie powinien być zliczony więcej niż kilka razy przy limicie czasu na 1-2 dni. Oczywiście możesz to zapisywać gdzieś w bazie, ale tak częsty odczyt i zapis mogą nieźle spowolnić bazę. A robienie wymyślnych zabezpieczeń by uodpornić licznik na odświeżanie nie wiem czy jest warte świeczki smile.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
LordRaven
post 7.01.2011, 22:31:20
Post #3





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 28.03.2009

Ostrzeżenie: (0%)
-----


dzięki zrobię tak jak napisałeś tak chyba będzie najlepiej
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 07:34