Počet stažení pod kontrolou
Někdy potřebujeme znát počet stažení souboru (nebo alespoň klepnutí na odkaz). Jednou z možností je nenabízet soubor ke stažení přímo, ale odkazovat na skript, který nejprve započte jeden přístup (zvýší počítadlo stažení) a teprve poté přesměruje na soubor ke stažení.
Řada prohlížečů po přesměrování na soubor ke stažení zahájí stahování, ale neukáže adresu, odkud se ve skutečnosti stahuje. Pokud do skriptu doplníte kontrolu, zda je skript volán z patřičné stránky, poslouží vám to zároveň jako jednoduchá ochrana, aby mohl kdokoli jiný na své stránce odkazovat na váš soubor ke stažení. Pokud někdo takový odkaz umístí na svou stránku, místo souboru ke stažení je prohlížeč přesměrován na vaši hlavní stránku.
Stahování souboru by bylo možné vyřešit i jinak, než prostým přesměrováním – soubor by posílal sám skript s odesláním vhodných hlaviček. Toto se však hodí pro vyloženě malé soubory (malé obrázky apod.). Pro velké soubory o velikosti několika megabajtů je to nevhodné – zpravidla by doba povolená k běhu skriptu vypršela dříve, než si klient soubor stáhne.
Nejprve si v databázi vytvořte tabulku – v ní pak můžete mít nadefinováno ke stažení souborů kolik chcete. Tabulka s názvem DLOADS bude mít sloupce ID typu shortint s volbou auto_increment, loaded typu integer a path typu varchar(255). Pokud chcete nabízet ke stažení soubory různých typů a z různých adresářů, je nutné následující skript upravit. Ten počítá se stahováním souborů stejného typu z téže složky. Do řádku tabulky pak vkládáte pouze do sloupce LOADED 0 a do sloupce PATH jméno souboru včetně přípony.
Položka ID se naplní sama na číslo o jedna vyšší, než je poslední vložený soubor ke stažení. Hodnotu ID pak použijete v parametru odkazu na skript pro stažení souboru. Jelikož používáte prosté přesměrování na soubor ke stažení, nemůžete pomocí odeslání vhodných hlaviček sdělit prohlížeči, jak se souborem naložit.
Abyste se vyhnuli u klienta namísto zahájení stahování souboru spuštění nějaké aplikace (např. přehrávače záznamů v případě souborů mp3), přejmenujte soubor ke stažení tak, že změníte příponu na nějakou "exotickou" a při stahování souboru upozorníte klienta na nutnost přejmenování po ukončení stahování. Pokud naopak chcete, aby se klientovi řádně spustila jeho přidružená aplikace (např. Windows Media Player, WinAmp, Word nebo Acrobat Reader), důsledně dodržíte správnou příponu souboru určeného ke stažení a informační hlášení o přejmenování souboru nepoužijete.
Skript download.php:
|
Upozorňuji, že součástí ukázkového skriptu není soubor opendb.php, který zajišťuje připojení k databázi pomocí PHP funkcí mysql_connect a mysql_select_db. Jejich použití je k vidění například v článku Jednoduchý internetový obchod v PHP, 1. díl. Na některých serverech není obsah proměnné $HTTP_REFERER korektní. Pokud se skript chová divně, zkuste vynechat v podmínce testování této proměnné – ochrana proti "zcizení" odkazu pak ovšem nebude funkční.
Do stránky pak vložte odkaz na soubor ke stažení. Součástí odkazu je parametr dl určující číslem soubor ke stažení a také ukázka vyskakovacího upozornění o nutnosti přejmenování souboru:
|
Nechcete-li použít změněné přípony souboru, pak v odkazu pro stažení souboru vynechejte celý parametr OnClick. Tabulku databáze lze rozšířit o popisek souboru ke stažení a vytvořit skript, který automaticky vygeneruje stránku se všemi soubory ke stažení, s komentářem a s počtem dosavadních stažení.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
AI na dosah ruky: Jak je to s AI v osobních zařízeních?
22. ledna 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
Gaming na HDR monitoru: Stojí to za to?
12. srpna 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024