<?php
$filesPath = "./";

/* funkcja sprawdzająca poprawność nazwy */
function checkFileName($name)
{
  if(strlen($name) > 100){
    return false;
  }
  $pliki = array(
   "plik1.zip", "plik2.zip", "plik3.zip"
  );
  return array_search($name, $pliki);
}

/* funkcja wysyłająca plik */
function send($fileName, $filePath)
{
  if(!file_exists($filePath.$fileName)){
    return false;
  }
  $fd = fopen($filePath.$fileName, "r");
  $size = filesize($filePath.$fileName);
  if($size == 0){
    $contents = '';
  }
  else{
    $contents = fread($fd, filesize($filePath.$fileName));
  }
  if($contents === false){
    return false;
  }

  fclose($fd);

  header("Content-Type: application/octet-stream");
  header("Content-Length: $size;");
  header("Content-Disposition: attachment; filename=$fileName");

  echo $contents;
  return true;
}

/* odczytanie danych i wywołanie funkcji */
if(isSet($_GET['name'])){
  if(checkFileName($_GET['name']) === false){
    include "nofile.html";
  }
  else{
    if(!send($_GET['name'], $filesPath)){
      include "nofile.html";
    }
  }
}
else{
  include "nofile.html";
}
?>
