Ranking pobierania plików (statystyka pobierania pliku) PHP MySQL
Skrypt wyświetla pliki do pobranie dodatkowo prowadzi statystyki ile razy plik został pobrany.
Listing
// Plik index.php ####################################
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<TITLE>Pobieranie plików</TITLE>
</HEAD>
<BODY><H3>
<?PHP
function printList()
{
if(!$link = mysql_connect("localhost", "login", "hasło")){
//echo("Problem z połšczeniem z bazą danych.");
return;
}
if(!mysql_select_db("nazwa_bazy")){
//echo("Problem z połšczeniem z bazš danych.");
mysql_close($link);
return;
}
$query = "SELECT ID, NAME FROM FILES";
if(!$result = mysql_query($query)){
//echo("Problem z bazš danych: odrzucone zapytanie");
mysql_close($link);
return;
}
while(($row = mysql_fetch_row($result)) != false){
$id = $row[0];
$file = $row[1];
if(($file = strrchr($file, "/")) == false)
continue;
$file = substr($file, 1, strlen($file));
echo("<A HREF=\"/download.php?id=");
echo("$id\">$file</A><BR>");
}
mysql_close($link);
}
printList();
?>
</BODY>
</HTML>
//skrypt wysyłający wybrany plik do użytkownika download.php #####
<?PHP
function getFileName($id)
{
if(!$link = mysql_connect("localhost", "login", "hasło")){
//echo("Problem z połączeniem z bazą danych.");
return false;
}
if(!mysql_select_db("nazwa_bazy")){
//echo("Problem z połączeniem z bazą danych.");
mysql_close($link);
return false;
}
$query = "SELECT NAME FROM FILES WHERE ID='$id'";
if(!$result = mysql_query($query)){
//echo("Problem z bazą danych: odrzucone zapytanie");
mysql_close($link);
return false;
}
$row = mysql_fetch_row($result);
if(!$row){
//echo("Nie ma takiego wpisu w bazie");
mysql_close($link);
return false;
}
$query = "UPDATE FILES SET COUNTER = COUNTER + 1 WHERE ID='$id'";
if(!$result = mysql_query($query)){
//echo("Problem z bazą danych: odrzucone zapytanie");
mysql_close($link);
return false;
}
mysql_close($link);
return $row[0];
}
function send($name)
{
$name = str_replace("/", "\\", $name);
if(!file_exists($name)){
echo('Nie ma takiego pliku na serwerze!');
return;
}
if(($fileName = strrchr($name, "\\")) == false){
echo('Nie ma takiego pliku na serwerze!');
return;
}
$fileName = substr($fileName, 1, strlen($fileName));
$fd = fopen($name,"r");
$size = filesize($name);
$contents = fread($fd, filesize($name));
fclose($fd);
header("Content-Type: application/octet-stream");
header("Content-Length: $size;");
header("Content-Disposition: attachment; filename=$fileName");
echo $contents;
}
if(isSet($_GET['id'])){
if(($name = getFileName($_GET['id'])) === false){
echo('Nie ma takiego pliku na serwerze!');
}
else{
send($name);
}
}
else{
echo('Nie ma takiego pliku na serwerze!');
}
?>
//Skrypt generujący ranking plików ranking.php
<?PHP
function printRank()
{
if(!$link = mysql_connect("localhost", "login", "hasło")){
//echo("Problem z połączeniem z bazą danych.");
return;
}
if(!mysql_select_db("nazwa_bazy")){
//echo("Problem z połączeniem z bazą danych.");
mysql_close($link);
return;
}
$query = "SELECT NAME, COUNTER FROM FILES ORDER BY COUNTER DESC";
if(!$result = mysql_query($query)){
//echo("Problem z bazą danych: odrzucone zapytanie");
mysql_close($link);
return;
}
echo("<TABLE border=\"0\" cellspacing=\"0\">");
echo("<TR><TD COLSPAN=\"2\" ALIGN=\"center\" BGCOLOR=\"yellow\">");
echo("Ranking plików</TD></TR>");
$flag = true;
while($row = mysql_fetch_array($result)){
if($flag) $color = "#FFC0C0";
else $color = "#FF8080";
$flag = !$flag;
echo("<TR><TD align=\"center\" BGCOLOR=\"$color\">");
$name = $row[0];
$name = strrchr($name, "/");
$name = substr($name, 1, strlen($name));
echo($name);
echo("</TD><TD width=\"50\" align=\"center\" BGCOLOR=\"$color\">");
echo($row[1]);
echo("</TD></TR>");
}
echo("</TABLE>");
mysql_close($link);
}
printRank();
?>
//Kod SQL dla tego skryptu
CREATE TABLE FILES(
ID INTEGER UNIQUE NOT NULL,
NAME VARCHAR(255) NOT NULL,
COUNTER INTEGER NOT NULL
)
Dodano przez: igor
Ranga: Administrator serwisu Punktów: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
No nie wiem czy działa bo mi nie chodzi. Porze o sprawdzenie i danie działającego skryptu.
autor: robiwielki | 13035 | 2014-11-11 22:59:15
No nie wiem, nam działa, proszę o sprawdzenie przepisanego kodu i postępowaniu według instrukcji. ;]
autor: divix | 13111 | 2018-06-09 21:34:34
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno