Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Kolejkowanie download'u
matid
post
Post #1





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

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


Czy ma ktoś pomysł jak rozwiązać kolejkowanie download'u w php? Chodzi mi o ograniczenie pobierania np. przez 10 osób jednocześnie i kolejkowanie użytkowników oczekujących na pobranie pliku. Takiej osobie będzie się wyswietlał komunikat w oknie popup: Jesteś 15/100 w kolejce, proszę czekać. I ta strona się będzie odświeżać, dopóki nie zwolni się miejsce dla wszystkich użytkowników zakolejkowanych przed nim i dopiero jak będzie mniejsce dla tej osoby to rozpocznie się transfer pliku.

Czy wogóle takie coś jest wykonalne w php bez ingerowania w ustawienia serwera www ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
djpeterek
post
Post #2





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 10.10.2003

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


założenia takiego skryptu to:
1 - ktoś klika w link np : download.php?plik=plik.zip
2 - skrypt sprawdza w bazie ile jest wpisów z czasem ( mktime() ) który jest niewiększy niż aktualny + 300 powiedzmy ( mktime()+300 ) , jeżeil jest ich mniej niż X to przechodzi dalej, jak więcej to wywala error, przechodzi do 4 i kończy ( bez 5 sie znaczy )
3 - teraz skrypt zapisuje do bazy aktualny czas + 300 ( mktime()+300 )
4 - skrypt kasuje wszystkie wpisy, w których czas jest mniejszy niż czas aktualny
5 - nastąpnie wysyła do użytwkonika plik, przekierowując go na właściwy adres lub odczytując zawartość i wysyłając do przeglądarki
Objaśnienia :
- 300 oznacza 300 sekund czyli 5 minut, przykładowy czas przez ktory użytkownik uważany jest za pobierającego plik, oczywiście możesz zmienić
- X to ilość osób które mogą pobierać jednocześnie
oczywiscie mozesz to zrobic na sql'ku
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 2.10.2025 - 12:16