Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem [unikatowe pobrania]
tabbi
post 22.03.2011, 10:28:11
Post #1





Grupa: Zarejestrowani
Postów: 150
Pomógł: 3
Dołączył: 30.10.2010

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


Witam,

pisze serwis, który będzie umożliwiał ściąganie plików użytkownikowi, jak najłatwiej zaprogramować sprawdzanie ile razy ktoś ściągnął jakiś plik. Chce narzucić ograniczenie 10 ściągnieć w ciągu godziny.

Przy każdym kliku w link tworzyć ciesteczko z okresem przydatności i danym IP potem sumowac te IP w celu sprawdzania, czy lepiej wszystko zapisywać do bazy mysql i tam sprawdzać ilość ściągnięć.

Oczywiście system jest dla niezalogowanych. questionmark.gif Jakieś pomysły jak to najlepiej i wydajnie napisać ?

Ten post edytował tabbi 22.03.2011, 12:16:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
wookieb
post 22.03.2011, 10:31:37
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Proszę zmienić nazwę tematu na bardziej opisujący problem


--------------------
Go to the top of the page
+Quote Post
Wilu88
post 22.03.2011, 13:01:00
Post #3





Grupa: Zarejestrowani
Postów: 158
Pomógł: 6
Dołączył: 7.03.2010

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


Ciasteczko to nie najlepszy pomysł, gdyż każdy może przecież je usunąć i co wtedy?

Wg. mnie najlepszym rozwiązaniem było by stworzenie pliku pośredniczącego w ściąganiu plików. Metodą GET przekazywałbyś albo nazw pliku a jeszcze lepiej numer id o ile pliki do ściągania masz zapisane jakoś w bazie danych. Następnie robił byś update tabeli w bazie danych w którym zapisywałbyś id użytkownika, data, oraz identyfikator pliku który ściągał. A na koniec za pomocą funkcji header robisz przekierowanie do pliku docelowego.


Oczywiście na samym początku tego skryptu musiałbyś zrobić jeszcze SELECT który sprawdzałby czy istnieją w bazie danych wpisy z id tego użytkownika z ostatniej godziny i czy jest ich mniej niż 10. Jeśli tak to wykonujesz dalszą część.

Edit.

Teraz doczytałem że to ma być dla niezalogowanych. Także tutaj będziesz miał problem z egzekwowaniem limitu ściągnięć. Oczywiście może to być ciastko, może być zapis do bazy danych IP, ale to wszystko łatwo obejść. Chyba że ten limit nie jest jakimś bardzo ważnym elementem twojego projektu.

Ja zawsze tego typu rzeczy rozbijam na dwa rodzaje kontroli:
1 - Mało ważne np. Sondy, Proste głosowania samo ciasteczko
2 - Ważne głosowania w których zależy mi na uczciwym głosowaniu itp - Tylko dla zarejestrowanych użytkowników i tym samym zapis do bazy danych.

Ten post edytował Wilu88 22.03.2011, 13:05:21
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: 14.08.2025 - 10:00