Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zliczanie pobran pliku
Forum PHP.pl > Forum > PHP
robert1974
czesc,
chcialbym by ze strony uzytkownicy mogli pobrac plik, i by kazde pobranie zwiekszalo licznik.

stworzylem prosta tabelke.

z pomoca google sklecilem cos takiego, ze wcisniecie guzika download wywoluje plik download_file.php z parametrem jakim jest nazwa pliku.
1. zwiekszam licznik: SQL UPDATE ....
2. po czym:
  1. $fsize = filesize($fullPath);
  2. $path_parts = pathinfo($fullPath);
  3. $ext = strtolower($path_parts["extension"]);
  4. header("Content-type: application/octet-stream");
  5. header("Content-Disposition: filename=\"".$path_parts["basename"]."\"");
  6. if($fsize)
  7. {
  8. header("Content-length: $fsize");
  9. }
  10. readfile($fullPath);
  11.  



no i niby dziala, a moje pytanie brzmi:
1. jak polaczyc to z AJAXem by aktualna liczba pobran sie od razu zwiekszala na stronie po wcisnieciu guzika, a nie dopiero po refreshu strony. jak takiego typu php (co zwraca plik sciagany) uzyc w polaczniu z Ajaxem. Robilem takie ajaxy, ze plik php zwraca jakis text i go od razu podminia na stronie, ale w tym php nie moge dodac echo.

2. czy boty tez beda pobierac ten plik, i czy zatem powinienem dodac sprawdznie czy to nie bot zanim zwieksze licznik?
jackraymund
1. Może by buttona przypisać do skryptu js.
window.open("http://www.w3schools.com");
ajax do php ->
SELECT COUNT(*) FROM table_name; -> INSERT nowego rekordu -> echo COUNT()+1
I ustawienie licznika na stronie js'em.
2. Bot nie wykonuje js'a, pobiera sam HTML. Ale jak tam chcesz, możesz im zablokować dostęp.
robert1974
niestety nie bardzo wiem jak to rozumiec/zrobic.

do pliku php nie moge dodac zwracania obecnej wartosci pobran ( poprzez echo $pobrania; ) gdyz wowczas przestaje dzialac ten mechanizm poobierania pliku.

musialbym chyba zrobic niezaleznego ajaxa, ktory co pare sekund sprawdzalby co jest w bazie i ta wartosc wyswietlal. Ale wowczas byloby to niezwiazane z plikiem download_file.php wcale.
jackraymund
wndows.open otwiera nową kartę, czyli w tym wypadku dasz linka do ściągania i on zacznie ściągać plik.

I zaraz po tym uruchamia się ajax aktualizujący pobrania.
2 różne skrypty.
robert1974
dzieki, sprobuje i dam znac gdzie dotre smile.gif
NickOver
Po co ajax?

Jeśli liczba pobrań jest widoczna to pobierz ją do zmiennej a potem do guzika przypisz funkcje która zwiększy wartość tej liczby o jeden.

Chyba że ccos pominąłem.
robert1974
na razie sie poddalem i zrobilem tak ze zapisuje do bazy po pobraniu pliku, a zwiekszona wartosc pobran jest widoczna dopiero po przeladowaniu strony.
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.