Loading:


Ranking pobierania plików (statystyka pobierania pliku) PHP MySQL

Skrypt wyświetla pliki do pobranie dodatkowo prowadzi statystyki ile razy plik został pobrany.



Napisz Artyku³

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
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


    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2024 v.1.5 | design: diviXdesign & rainbowcolors