Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ilość wyświetleń tematu w forum
Forum PHP.pl > Forum > PHP
LordRaven
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
thek
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
LordRaven
dzięki zrobię tak jak napisałeś tak chyba będzie najlepiej
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.