Ako sprístupniť súbor po zadaní kódu na webe

Občas sa stretneme s tým, že chceme sprístupniť na webe súbor po zadaní promo kódu, prípadne po vypísaní kontaktného formuláru. Pripravili sme pre vás krátky návod, ako vyriešiť tento problém.

Súbor môžete spristupniť na svojom webe, či už na subdoméne, alebo priamo na vašej doméne.

V našom návode si ukážeme dva príklady. Prvý príklad, ak chceme sprístupniť súbor pod jedným kódom. Druhý príklad: každý návštevník bude mat svoj kód.

Pre náš príklad použijeme sprístupnenie pdf súboru Priklad.pdf

  1. Nahráme si súbor do priestoru webu. Prihláste sa na FTP. vytvorte si adresár „download“ . Do tohto adresáru nahráme náš súbor. Adresár treba zabezpečiť, aby si súbor nestiahol niekto bez zadania kódu. Toto nám zabezpečí .htaccess

Do .htaccess napíšeme kód Deny from all  

Deny from all

v prípade, že náš web beži na apache24 tak vložíme do .htaccess

Require all denied

2.  Vytvoríme si skript, ktorý bude načítavať spracovať formulár: kod.php

<?php

$kod = "naszadanykod";
$subor = "download/Priklad.pdf";

if($_POST['submit']){
     if($kod == $_POST['kod']){
          $result = file_get_contents($subor);
          header("Content-Type: application/pdf; charset=utf-8");
          echo $result;
          die;
     }     
}

?>
<form action="" method="POST">
  Kod<br>
  <input type="text" name="kod"><br>
  <input type="submit" name="submit" value="Poslat" >
</form>

$kod – premenná, ktorej priradíme nami zvolený kód

$subor – cesta k súboru, ktorý sa ma stiahnuť cez skript

Content-Type – Content type si musíte nastavit podľa typu súboru, ktorý chcete sprístupniť (zoznam typov súborov)

Pre použitie samostatných kódov

Ak chceme každému zákazníkovi prideliť vlastný kód, je dobré využiť MySql databázu. Prihlásime sa cez phpMyAdmin k správe databázy. Klikneme na vytvoriť tabuľku so štýrmi stlpcami. Prvý si zvolíme kod, podľa typu a dĺžky zvolíme ďalšie parametre, odporúčam VARCHAR(20) s tým, že náš kód bude aj primárný kľúč. Ďalší stĺpec si zvolíme pouzite typ BOOLEAN s default hodnotou 0 (false). Posledný stĺpec zvolíme datum typ DATETIME. Keď už máme tabuľku vytvorenú, vložíme do nej naše kódy.

kop.php vyzerá nasledovne:

<?php

$subor = "download/11388.pdf";

if($_POST['submit']){
        $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
        $result = $mysqli->query("select * from kody where kod='{$_POST['kod']}' and pouzite='0'");
        if($result->num_rows == 1){ 
              $data = $result->fetch_array(MYSQLI_ASSOC); 
              $mysqli->query("update kody set pouzite='1', datum=NOW() where kod='{$_POST['kod']}'");
              $result = file_get_contents($subor);
               header("Content-Type: application/pdf; charset=utf-8");
               echo $result;
               die;
         } else {
               die("Neplatný kupón");
        } 
}

?>
<form action="" method="POST">
 Kod<br>
 <input type="text" name="kod"><br>
 <input type="submit" name="submit" value="Poslat" >
</form>