![]() |
|
Jak zrobić licznik pobrań plików ze strony? [MySQL][PHP] PORADNIK - Wersja do druku +- Praca w domu - Dodatkowa Praca - Zarabianie przez Internet (https://zarabiam.com) +-- Dział: CPA, PPA i content locking (https://zarabiam.com/Forum-Uploading-282) +--- Dział: Blogi PPA i content locking (https://zarabiam.com/Forum-Wszystko-o-blogach-PPA-343) +--- Wątek: Jak zrobić licznik pobrań plików ze strony? [MySQL][PHP] PORADNIK (/Temat-Jak-zrobic-licznik-pobran-plikow-ze-strony-MySQL-PHP-PORADNIK-68707) |
Jak zrobić licznik pobrań plików ze strony? [MySQL][PHP] PORADNIK - LessiPL - 02-05-2013 Hej, postanowiłem wrzucić dla Was skrypt który zlicza pobrania ze strony. Jeśli chcesz stworzyć skrypt, który zliczy ile razy użytkownicy pobrali określony plik z Twojego serwisu lub sekcji download. Jeżeli prowadzisz serwis udostępniający użytkownikom pliki do pobrania(np pliki ppa), z pewnością przyda Ci się skrypt, który policzy ile razy poszczególne pliki zostały pobrane. Mając takie informacje możesz stworzyć ranking najpopularniejszych plików w serwisie i ułożyć je według popularności, aby najczęściej pobierane były na samym początku listy. Zobacz jak to osiągnąć. Zakładanie bazy i tabeli Jeżeli nie masz utworzonej bazy danych w MySQL, możesz ją założyć wykonując poniższy skrypt. Zakłada on bazę danych o nazwie baza1. Wystarczy, że skrypt użyjesz raz, potem nie będzie już potrzebny. Kod: <?
$baza = mysql_connect("localhost", "user", "password");
if ($baza) {
$wynik = mysql_query("CREATE DATABASE baza1",$baza);
if ($wynik) echo "Baza została stworzona";
mysql_close($baza);
}
?>Jeżeli masz już założoną bazę danych, czas aby założyć tabelę o nazwie kliki, w której znajdą się liczniki kliknięć dla poszczególnych plików. Kod: <?
$baza = mysql_connect("localhost", "user", "password");
if ($baza) {
$wynik = mysql_select_db("baza1",$baza);
if ($wynik) {
$wynik = mysql_query("CREATE TABLE kliki (
id int not null primary key,
nazwa char(100) not null unique,
licznik int not null default '0'
)", $baza);
if ($wynik) echo "Tabela została stworzona";
}
mysql_close($baza);
}
?>Mamy już stworzoną tabelę przechowującą unikalny numer pliku id (liczba całkowita), który nie może się powtarzać, jego nazwę nazwa (do 100 znaków), która również jest unikalna i nie może być pusta oraz pole licznik dla każdego z plików, który nie może być pusty (domyślna wartość to zero). Zarządzanie plikami Aby do tabeli dodać pliki, które znajdą się w serwisie i będą miały zliczane kliknięcia, posłuż się następującym skryptem: Kod: <?
$baza = mysql_connect("localhost", "user", "password");
if ($baza) {
$wynik = mysql_select_db("baza1",$baza);
if ($wynik) {
mysql_query("INSERT IGNORE INTO kliki VALUES (1,'plik1.zip',0)", $baza);
mysql_query("INSERT IGNORE INTO kliki VALUES (2,'plik2.exe',0)", $baza);
mysql_query("INSERT IGNORE INTO kliki VALUES (3,'plik3.jpg',100)", $baza);
// mysql_query("DELETE FROM kliki WHERE id=3", $baza);
// mysql_query("UPDATE kliki SET nazwa='nowanazwa.exe' WHERE id=3", $baza);
}
mysql_close($baza);
}
?>Możesz podać od razu inną wartość licznika. W przykładzie plik o numerze 3 ma licznik od razu ustawiony na 100, bo zakładam, że wcześniej plik został pobrany już 100 razy i nie chcę zaczynać liczenia od zera. Jeżeli chcesz skasować z listy jakiś plik usuń komentarz z polecenia DELETE FROM, który kasuje z tabeli plik o określonym numerze id. Polecenie UPDATE pozwala zmienić nazwę pliku, gdyby trzeba było tego dokonać. Powyższy skrypt wykonuj tylko wtedy, gdy chcesz dodać, zmienić lub kasować listę plików. W innych wypadkach nie będzie potrzebny. Wyświetlanie plików i liczników na stronie Poniższy skrypt umieść w pliku index.php, w miejscu, gdzie chcesz udostępnić pliki do pobrania. Wyświetla on na stronie nazwy plików i linki do nich, a obok pokazuje ile razy poszczególne pliki zostały pobrane. Kod: <?
$baza = mysql_connect("localhost", "user", "password");
if ($baza) {
$wynik = mysql_select_db("baza1",$baza);
if ($wynik) {
$sql="SELECT * FROM kliki ORDER BY licznik DESC";
$wynik = mysql_query($sql,$baza);
mysql_close($baza);
for ($i=0;$i<mysql_num_rows($wynik);$i++) {
list($bid, $bnazwa, $blicznik) = mysql_fetch_row($wynik);
echo "<br>- <a href=\"pobierz.php?id=$bid\">$bnazwa</a> [$blicznik]";
}
} else { echo "Wybranie bazy danych nie było możliwe..."; }
} else { echo "Połączenie do MySQL nie było możliwe..."; }
?>- plik6.jpg [11] - plik1.zip [5] - plik2.exe [3] gdzie nazwy plików będą odnośnikami. Po kliknięciu nazwy pliku nastąpi pobranie go i zwiększenie licznika pobrań o 1. Tym razem za pomocą polecenia SQL: Kod: "SELECT * FROM kliki ORDER BY licznik DESC" pobieramy (SELECT) z bazy kliki (FROM kliki) wszystkie (*) rekordy sortując je (ORDER BY) malejąco (DESC) według pola licznik.Pobranie pliku i zwiększenie licznika. Poprzedni skrypt numer pliku kieruje do skryptu pobierz.php?id=numer, przekazuje mu numer pliku do pobrania. Pozostała nam więc jeszcze jedna część układanki - skrypt, który wyśle plik do użytkownika i zwiększy licznik o 1. Poniższy kod (i tylko ten kod, nic więcej) umieść w pliku pobierz.php. Kod: <?
if ($id) {
$baza = mysql_connect("localhost", "user", "password");
mysql_select_db("baza1",$baza);
mysql_query("UPDATE kliki SET licznik=licznik+1 WHERE id=$id", $baza);
$wynik = mysql_query("SELECT nazwa FROM kliki WHERE id=$id", $baza);
mysql_close($baza);
}
if ($wynik) {
$w = mysql_fetch_row($wynik);
$plik= $w[0];
if (($plik<>"")and(file_exists("pliki/$plik"))) {
header("location: pliki/$plik"); exit;
}
}
header("location: index.php"); exit;
?>Jeżeli do skryptu nie zostany przekazany numer id, id będzie błędny lub id nie wystąpi w bazie, użytkownik zostanie skierowany ponownie na stronę index.php, gdzie znajduje się spis plików do pobrania. Może się też zdarzyć, że plik o podanej nazwie nie istnieje (został przez przypadek skasowany) i wtedy również użytkownik zostanie odesłany do strony index.php. W ten sposób łatwo osbłużyć błędne przekazywanie parametrów do skryptu pobierz.php. Gotowe. Masz już licznik plików, które użytkownicy pobierają z Twojego serwisu. Jeżeli chcesz, możesz rozbudować tabelę o dodatkowe pola, np. z opisem pliku. Myślę że earnerom się przyda, pozdrawiam. RE: Jak zrobić licznik pobrań plików ze strony? [MySQL][PHP] PORADNIK - pikusix1 - 02-05-2013 Nie przeczytałem, bo mi się nie chciało, ale reput leci. |