Domov / Návody pre Windows / Vytvorte počítadlo sťahovania súborov pomocou PHP a MySQL. Inštalácia počítadla sťahovania - prehľad pluginov pre WordPress Počítadlo vybraných súborov

Vytvorte počítadlo sťahovania súborov pomocou PHP a MySQL. Inštalácia počítadla sťahovania - prehľad pluginov pre WordPress Počítadlo vybraných súborov

Dlho tu neboli žiadne lekcie o PHP a MySQL. Dnes si vytvoríme jednoduché, ale efektívne počítadlo sťahovania.

Každý súbor bude mať záznam v riadku databázovej tabuľky. V rovnakej tabuľke bude uložený počet stiahnutí súborov. PHP bude aktualizovať databázu MySQL a presmerovať používateľa na požadovaný súbor.

Ak chcete sledovať počet stiahnutí ľubovoľného súboru, musíte ho umiestniť do priečinka súbory a na prístup k nemu použite špeciálnu adresu URL.

Krok 1 - XHTML

Prvým krokom je vytvorenie značky pre náš skript. Je to veľmi jednoduché – máme správca súborov div, ktorý obsahuje neusporiadaný zoznam, v ktorom je každý prvok zoznamu zodpovedný za súbor.

Súbory, ktorých sťahovanie chcete sledovať, sa umiestnia do priečinka súbory v koreňovom priečinku skriptu. PHP potom iteruje všetky súbory a každý z nich pridá ako položku zoznamu ( li ) do neusporiadaného zoznamu.

demo.php


  • photoShoot-1.0.zip 0 Stiahnuť ▼

Všimnite si, že atribút href links odovzdáva názov súboru ako parameter download.php. Tu prichádza na rad sledovanie sťahovania.

Nemusíte všetko zobrazovať rovnako – môžete len odkazovať download.php na vašich stránkach a žiadne sťahovanie neprejde.

Krok 2 - css

Po označení prejdime k dizajnu. css platia nižšie uvedené pravidlá div file-manager s id (symbol #), pretože sa na stránke vyskytuje iba raz a pre ostatné prvky podľa názvov tried.

styles.css

#file-manager( background-color:#EEE; border:1px solid #DDD; margin:50px auto; padding:10px; width:400px; )
ul.manager li( background:url("img/bg_gradient.gif") repeat-x stred dole #F5F5F5; border:1px solid #DDD; border-top-color:#FFF; list-style:none; position:relative ; ) ul.manager li a( display:block; padding:8px; ) ul.manager li a:hover .download-label( /* Pri umiestnení kurzora myši zobrazí zelený text sťahovania: */ display:block; ) span. download- label( background-color:#64B126; border:1px solid #4E9416; color:white; display:none; font-size:10px; padding:2px 4px; position:absolute; right:8px; text-decoration:none ; text -shadow:0 0 1px #315D0D; top:6px; /* CSS3 zaoblené rohy */
-moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; ) span.download-count( color:#999; font-size:10px; padding:3px 5px; position:absolute; text-decoration:none; )

Krok 3 -PHP

Ako som už povedal, PHP hľadá súbory v priečinku so súbormi a uvádza každý súbor ako položku zoznamu v neusporiadanom zozname. Poďme sa pozrieť, ako to prebieha

demo.php- vrchná časť

// Coo hlásenia chýb: error_reporting(E_ALL^E_NOTICE); // : vyžadovať "connect.php"; $extension=""; $files_array = pole(); /* Otvorte priečinok a prejdite všetky súbory: */ $dir_handle = @opendir($adresár) or die("Vyskytla sa chyba vo vašom adresári súborov!"); while ($file = readdir($dir_handle)) ( /* preskakovanie systémové súbory : */ if($file(0)==".") pokračovať; /* koniec() vráti posledný prvok poľa generované funkciou explode(): */ $prípona = strtolower(end(explode(.","$file))); /* Preskočiť súbory php : */ if($extension == "php") pokračovať; $files_array=$subor; ) /* Usporiadajte súbory podľa abecedy*/ sort($files_array,SORT_STRING); $file_downloads=array(); $vysledok = mysql_query("SELECT * FROM download_manager"); if(mysql_num_rows($result)) while($row=mysql_fetch_assoc($result)) ( /* kľúč poľa $file_downloads bude názov súboru, a bude obsahovať počet stiahnutí: */ $file_downloads[$row["filename"]]=$row["downloads"]; )

Všimnite si, ako pomocou mysql_query() vyberieme všetky riadky z tabuľky download_manager a neskôr ich pridáme do poľa $file_downloads s názvom súboru ako kľúčom k počtu stiahnutí. Takže neskôr v kóde môžeme napísať $file_downloads["archive.zip"] a vytlačiť počet stiahnutí.

Nižšie vidíte kód, ktorý generuje prvky zoznamu:

demo.php- stredná časť

Foreach($files_array ako $key=>$val) ( echo "

  • ".$val." ".(int)$file_downloads[$val]." Stiahnuť ▼
  • "; }

    Všetko sa robí jednoducho pomocou slučky foreach poľa $files_array. Potom sa všetko vypíše pomocou ozveny.

    Teraz sa pozrime bližšie na to, ako funguje sledovanie súborov.

    download.php

    // Kontrola chýb : error_reporting(E_ALL^E_NOTICE); // Povoľte súbor pripojenia db: required("connect.php"); if(!$_GET["súbor"]) error("Chýba parameter!"); if($_GET["súbor"](0)==".") error("Chybný súbor!"); if(file_exists($directory."/".$_GET["file")])) ( /* Ak a návštevník nie je vyhľadávací robot, počítať stiahnutia: */ if(!is_bot()) mysql_query(" INSERT INTO download_manager SET filename="".mysql_real_escape_string($_GET["file"])."" PRI AKTUALIZÁCII DUPLIKÁTOVÉHO KĽÚČA downloads=downloads+1"); header("Umiestnenie: ".$adresár."/".$_GET["súbor"]); VÝCHOD; ) else error("Tento súbor neexistuje!"); /* funkčných pomocníkov: */ function error($str) ( die($str); ) function is_bot() ( /* Táto kontrolná funkcia na robote*/ $botlist = array("Teoma", "alexa", "froogle", "Gigabot", "inktomi", "looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory", "Ask Jeeves", "TECNOSEEK" ", "InfoSeek", "WebFindBot", "girafabot", "crawler", "www.galaxy.com", "Googlebot", "Scooter", "Slurp", "msnbot", "appie", "FAST", "WebBug", "Spade", "ZyBorg", "rabaz", "Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot", "Mediapartners-Google", "Sogou web spider", "WebAlta Crawler" "TweetmemeBot", "Butterfly", "Twitturls", "Me.dium", "Twiceler"); foreach($botlist as $bot) ( if(strpos($_SERVER["HTTP_USER_AGENT"],$bot)!==false) return true; // Je bot ) return false; // Nie je to robot)

    Je dôležité skontrolovať, či je váš návštevník človek alebo robot vyhľadávacieho nástroja. Roboty sú fajn, ale nedovoľme, aby skresľovali naše štatistiky. Preto sa riadok v databáze aktualizuje až po kontrole is_bot().

    Krok 4 -MySQL

    Ako sme uviedli v poslednom kroku, počet stiahnutí je uložený ako riadok v tabuľke download_manager. Najprv si vysvetlime, ako tento dotaz funguje:

    download.php

    INSERT INTO download_manager SET filename="filename.doc" ON DUPLIKÁTNY KĽÚČ UPDATE downloads=downloads+1

    Hovorí MySQL, aby vložila nový riadok do tabuľky download_manager a nastavila pole riadku názvu súboru na hodnotu súboru volaného na stiahnutie. Pole názvu súboru je však označené ako jedinečný index v tabulke. To znamená, že každý riadok možno vložiť iba raz, inak dôjde k chybe duplicitného kľúča.

    Tu bude fungovať druhá časť dotazu – ON DUPLICATE KEY UPDATE povie MySQL, aby pridala jeden do stĺpca sťahovania, ak súbor už v databáze existuje.

    Nové súbory sa teda automaticky pridajú do databázy pri prvom sťahovaní.

    Krok 5 - jQuery

    Aby bolo možné sledovať v reálnom čase, bolo by dobré po každom stiahnutí aktualizovať počítadlo vedľa názvu súboru.

    Urobíme to pomocou jQuery:

    script.js

    $(document).ready(function()( /* Kód sa spustí po načítaní stránky*/ $("ul.manager a").click(function()( var countSpan = $(".download-count",this); countSpan.text(parseInt(countSpan.text())+1); ) ); ));

    Odkazom, ktoré vedú k súborom, jednoducho priradíme obslužný program kliknutia a ku každému kliknutiu pridáme hodnotu.

    Krok 6 -htaccess

    Je potrebné urobiť ešte jednu vec. Download.php presmeruje používateľa na požadovaný súbor, ktorý bol odovzdaný ako parameter. Možno ste si však všimli, že prehliadače sa niektoré typy súborov pokúšajú otvárať priamo. Musíme tiež spustiť ich sťahovanie. Môžete to urobiť pomocou niekoľkých riadkov v súbore .htacess, ktorý sa nachádza v priečinku so súbormi.

    Aplikácia ForceType/oktetový prúd

    Teraz je náš pult úplne pripravený!

    Záver

    Aby demo fungovalo, musíte znova vytvoriť tabuľku download_manager v databáze MySQL. Požadovaný kód SQL nájdete v zdrojoch.

    Potom pridajte svoje údaje pre pripojenie k databáze do súboru configuration.php.

    Ďalšou otázkou, ktorá ma nedávno zaujala pri zakladaní môjho nenáročného autorského projektu, bola otázka, ako počítať počet stiahnutí konkrétneho tu zverejneného súboru. Najlogickejšie bolo predpokladať, že to vyžaduje ďalší doplnok, nejaký správca sťahovania, alebo čo je jednoduchšie - počítadlo sťahovania. Po prehľadaní na internete sa ukázalo, že tieto doplnky sú ako obvykle vagón a malý vozík. Ale ich recenzie - opäť nie. Čo si vybrať, nie je absolútne jasné a ako to už býva, všetko som musela otestovať na sebe. A podľa výsledkov testovania dopadol tento recenzent. Písalo sa veľmi dlho, pričom cieľom nebolo dôkladné otestovanie všetkých vyššie uvedených pluginov s úplnou recenziou ich nastavení, takže podrobné screenshoty každého nenájdete, no tu sú kľúčové nastavenia. O niektorých som vôbec nechcel hovoriť - boli také hlúpe, ale ak som sa už pozrel, bola škoda nenapísať vôbec nič.

    Úvod.

    Úlohou teda bolo spočítať počet stiahnutí konkrétneho súboru nastavením počítadla sťahovania pre WordPress. Pri bližšom skúmaní sa to rozpadlo na niekoľko čiastkových úloh, alebo skôr prianí pluginu, ktorý by to vykonal. Tu je ich krátky zoznam:

    • Je potrebné, aby sa niekde v admin paneli zobrazoval počet stiahnutí s možnosťou triedenia - koľko bolo stiahnutých za deň, za týždeň, mesiac, rok, spolu
    • Je žiaduce, aby ste videli grafy / diagramy sťahovania súborov navzájom
    • Je žiaduce, aby ste videli grafy / diagramy sťahovania súborov v priebehu času
    • Je žiaduce, aby sa štatistiky uchovávali o tom, kedy bol súbor naposledy stiahnutý
    • Možnosť zobraziť informácie vedľa odkazu o tom, koľkokrát bol súbor stiahnutý, ako aj jeho veľkosť a dátum stiahnutia pre používateľa, ktorý sa ho práve chystá stiahnuť. No, alebo nezobrazovať - ​​na žiadosť admina
    • Schopnosť vložiť kód, ktorý je za to zodpovedný, pomocou samostatného tlačidla na paneli príspevkov editora TinyMCE (nerád používam rýchle značky)
    • Schopnosť obmedziť rýchlosť sťahovania (pre každý prípad)
    • Pripojenie funkcie nahrávania k tomuto pluginu (nahrávanie súborov na server) - naopak, nevzdal sa. FTP mi tiež funguje dobre. Ale ak to moc neprekáža, tak nech zostane
    • Bolo by pekné mať možnosť prilepiť krásne tlačidlo na odkaz na stiahnutie - hoci mi stačí napísať class = "tlačidlo"

    ABAP

    Stiahnuť súbor!

    • No, ak spočítate počet stiahnutí nielen z vašej stránky, ale jednoducho z odkazu
    • Možnosť zakázať priame sťahovanie súboru bez zobrazenia toho, kde sa na serveri nachádza.

    Toto je taký malý zoznam.

    Preskúmanie

    Keď sa rozhodneme pre TOR, začneme zvažovať, čo sa nám priamo ponúka.

    1. Plugin Download Counter 1.2, stiahnutý odtiaľto.

    Pôvodne bola umiestnená stránka pluginu, ale autor ju už viac ako 4 roky nepodporuje. Vytvoríme mi na to ďalší priečinok v adresári plugins - download-counter, hodíme tam oba súbory. Ako výsledok - kde by ste si to mysleli? - nastavenia sa zobrazia v záznamoch. Veľmi originálne, ale v poriadku.

    Ideme dovnútra, napíšeme cestu k súboru download-manager.php (naozaj nerád hádžem nejaké nezmysly priamo do koreňa). A pozrite sa, čo sme dostali. Nahrajte súbor a skontrolujte, či sa sťahuje manuálny mód, ak zadáte priamy odkaz v prehliadači, zadajte cestu do pluginu na vytvorenie počítadla. Teoreticky by sa malo vytvoriť ID, ktoré potom bude potrebné vložiť všade. Nič sa však nestalo – zobrazí sa chyba „Chyba – záznam nie je možné uložiť“. No dobre, presvedčili sme, prenesieme to do rootu download-manager.php - zase nič, tá istá chyba. No do čerta, zlatá rybka, nestačilo mi pochopiť pluginy, ktorých sa autor nevzdal. Navyše funkčnosť je prakticky nulová.

    2. Plugin Download Counter Advanced 1.1, stiahnutý rovnako.

    Hneď poviem, že ani mne to v skutočnosti nefungovalo, takže o jeho inštalácii a konfigurácii si môžete prečítať len z akademického záujmu. V skutočnosti ide o rovnaký doplnok, len mierne upravený. Vďaka Bohu, aj keď návod nie je preložený, môžete si ho normálne prečítať a nesnažiť sa pochopiť, čo tým prekladateľ myslel. Mimochodom, na paneli admin - zdá sa, že ide o úplne iný doplnok, ktorý ponúka aktualizáciu (áno, obr). Podobne ako pri predchádzajúcom plugine bola umiestnená aj jeho stránka a rovnakým spôsobom ju autor už viac ako 4 roky nepodporuje. Analogicky mu vytvoríme ďalší priečinok v adresári plugins, môj je download-counter, hodíme tam všetky súbory. Nastavenia vyzerajú, samozrejme, bohatšie, aj keď rýchlosť sťahovania je obmedzená okamžite pre všetky súbory a nie je nastavená pre každý jednotlivo. Kde je súbor download-manager..php (nezabudnite názov súboru na konci, ale kde sú všetky stiahnuté súbory - hádal som prvýkrát, čo ma uvrhlo do strašného úžasu. Ako sa neskôr ukázalo, uhádol som to s názvom adresára, do ktorého sa majú ukladať stiahnuté súbory, tu moja logika fungovala na 100% rovnako ako u autora pluginu.

    Názvy priečinkov, ktoré máme na serveri, pridávame do adresára sťahovania (v nastaveniach „kategórie a adresáre“), aby sme si uľahčili výber cesty k súborom. Ak ich nepridáte, budete musieť všetko stiahnuť do koreňového adresára sťahovania. Uložiť, môžete pridať stiahnuté súbory. Tu je to, čo zhruba dostaneme.

    Teraz sa pokúsime vložiť do príspevku. Pridáme odkaz, v ňom zmeníme náš odkaz na kód, ktorý sa vydáva priamo v nastaveniach pluginu. A potom ... A figy vám! Chyba HTTP 500 (Interná chyba servera): Počas pokusu servera splniť požiadavku nastala neočakávaná situácia. No, len som ti chcel povedať, ako pridať počítadlo priamo do príspevku, čo ak odkaz vo vnútri aby sa to podarilo

    ABAP

    < ahref= "http://chewriter..jpg" />

    potom môžete zobraziť tlačidlo sťahovania - krivé, naozaj. Tu je plugin pre vás, stratili ste čas. Štatistiky si nijako zvlášť nevedie, pretože kde je chyba, na to neprídeme.

    Toto je presne plugin, na ktorý bolo navrhnuté aktualizovať vyššie uvedený Download Counter Advanced. No ponúka - a dobre, stiahneme, uvidíme. Plugin nebol aktualizovaný viac ako 3 roky a niektorí používatelia dokonca sami opravovali jeho kód. Inštaluje sa celkom úspešne, askéza nastavení nevzbudzuje optimizmus. Mimochodom, dobre urobené, uhádli, kam umiestniť nastavenia - nie horšie ako v predchádzajúcom prípade. Na stránke nastavení pridávame počítadlá, všetko sa zdá byť zvýraznené, ako má.

    Pozrime sa, čo máme s dodatkom k príspevku. Áno, žiadne tlačidlá. A, samozrejme, zabudol som tam, všetko je intuitívne. Poďme k návodu. Je potrebné zablokovať zložitú štruktúru pozostávajúcu z krátkych kódov ako , downloaded , a zároveň (pravdepodobne kvôli NC) vlastne nič nepočíta.

    Nebude sa preto ďalej uvažovať, spolu s pluginom Download Counter Chart, ktorý k nemu patrí a ktorý zobrazuje informácie v grafickej podobe, nebudeme realizovať.

    Napísal náš krajan, ale bohužiaľ jediné, čo môže urobiť, je zobraziť počet sťahovateľov súboru pri jeho názve – neposkytuje štatistiku ani iné vychytávky. Ak ste však fanúšikom minimalizmu, toto je to, čo potrebujete. Len nezabudnite, že neexistujú žiadne tlačidlá, napríklad krátky kód


    Do-it-yourself download counter for wordpress

    bude potrebné zadať ručne. Je veľmi dobré, že autor všetko vymaľoval do detailov, nemusel som to testovať sám.

    No, ak hovoríme o pluginoch napísaných našimi ľuďmi, potom nemôžeme nespomenúť ešte jeden. Jeho obrovskou výhodou je, že vám umožňuje počítať nielen počet stiahnutí súborov, ale aj kliknutia na odkazy - nezáleží na tom, či vedú k akémukoľvek súboru alebo len na inú stránku. Alebo do súboru na cudzej stránke 🙂 Aj toto si vypočíta, respektíve teoreticky by to mal vypočítať. Jeho štatistika tiež nie je taká horúca, na paneli úprav nie sú žiadne tlačidlá, obmedzenia sa netýkajú ani sťahovania. Ale aj tak je to zaujímavé vidieť. Takže stiahnite a nainštalujte. V podstate dosť Detailný popis je na webe autora, tak to nebudem moc rozširovať. Vždy musíte mať na pamäti, že ak chcete nastaviť počítadlo na súbore alebo odkaze, mali by ste buď použiť krátky kód typu, alebo vložiť do odkazu triedu class = "count". To je samozrejme otravné, s tlačidlom by to bolo oveľa pohodlnejšie. Najnepríjemnejšie však je, že po všetkých gestách sa mi to stále nepodarilo adekvátne spustiť - ak bol použitý krátky kód, potom sa nezobrazil samotný odkaz na stiahnutie a ak bola použitá trieda, štatistika odkazu nie sa zobrazí na paneli správcu. Screenshoty si môžete pozrieť od autora - ak sa vám páči samotný nápad - skúste to, možno uspejete.

    Naozaj, veľmi jednoduché. Nevyžadujú sa žiadne skratky atď. Tento plugin však poskytuje štatistiky len pre autora, no návštevníkom sa vedľa odkazu na súbor nezobrazuje.

    Treba si však uvedomiť, že sa vedú podrobné štatistiky o tom, kto a kedy stiahol ktorý súbor. Nie je však veľmi pohodlné ho používať.

    Nastavenia zahŕňajú nasledovné:

    • Môžete zadať adresár, z ktorého je povolené sťahovanie súborov
    • Môžete určiť typy súborov, ktoré je možné sťahovať
    • Zakázať sťahovanie súboru ako autora
    • Nastavte v sekundách interval, počas ktorého sa opakované kliknutia na odkaz z rovnakej IP budú započítavať iba raz
    • Obmedzte počet súborov, ktoré je možné stiahnuť z jednej IP adresy za deň
    • Použite nejakú medzistránku s informáciou, že sťahovanie teraz začne

    Toto všetko však funguje len vtedy, ak buď (ako to povedať zjednodušene...) máte oprávnenie na úpravu súboru .htaccess, alebo ak odkaz určíte priamo vložením do

    Keďže však nemal možnosť zobrazovať štatistiky pre používateľov a nechcel som si zapamätať typ odkazu, prestal som ho zvažovať a rozhodol som sa vrátiť iba v prípade, že ostatné doplnky vo fronte nedokážu vyriešiť úlohu .

    Z hľadiska zobrazovania informácií je tento plugin veľmi podobný tomu, o ktorom sme hovorili v predchádzajúcom odseku. Líši sa tým, že vám umožňuje prezerať štatistiky oddelene týždenne, mesačne, za ľubovoľné obdobie a len top 10. Z hľadiska jeho možností je na tom oveľa mizernejšie, chýbajú štatistiky o poslednom sťahovaní, ani o konkrétnom súbore, nehovoriac o možnosti obmedzovať sťahovanie súborov. Vôbec neexistuje jasná dokumentácia. Mám dojem, že ide len o nejaké nedorozumenie a nie o plugin. Nechcem ani dávať screenshoty, ale aby som bol objektívny, aj tak ich dám, autorské práva.

    No dostali sme sa k niečomu viac-menej hodnému. Takmer pol milióna stiahnutí o niečom hovorí. Oficiálna stránka plugin sa nachádza. Ak chcete vložiť súbor do príspevku, musíte použiť šípku nad vizuálnym editorom (ikona sa v ňom nezobrazuje)

    A v zobrazenom okne vyberte požadovaný súbor (toto je príklad, ak už bol nahraný cez FTP)

    Potom kliknite na tlačidlo „Uložiť nové sťahovanie“.

    a prejdite na ďalšiu obrazovku, vyberte formát sťahovania a kliknite na vložiť do príspevok. Je možné, že sa nič nestane. Plugin je mierne chybný najnovšie verzie wordpress. Preto musíte dodatočne kliknúť na odkaz Zobraziť stiahnuté súbory

    A už vtedy najprv vyberte formát sťahovania, kliknite na odkaz Vložiť vedľa súboru, ktorý chcete vložiť.

    Potom sa v príspevku objaví zodpovedajúci skrátený kód typu

    ABAP

    [downloadid="7592" format="1"]

    Plugin vyžaduje tenký manuálne nastavenie, ale neposkytuje sa žiadny WYSIWYG. Dobrá vec, že ​​ho musíte nastaviť iba raz. Podrobná dokumentácia je u autora.

    Tu je príklad nastavenia:

    ABAP

    (názov)

    < ahref= "(url)" title="(!LANG:Stiahnuté (prístupy,"ни разу","1 раз","% раза"}">{title}!}

    Treba si uvedomiť, že nie sú podporované deklinácie, tzn. ak bol súbor stiahnutý 21-krát a vo svojej šablóne máte „časy“, bude to znieť trochu nerusky.

    A tu je možnosť tlačidla:

    ABAP

    - (popis), (veľkosť), Stiahnuté (dátum,"Y-m-d"), Počet stiahnutí (prístupov)

    < ahref= "(url)" title="(!LANG:Stiahnuté (prístupy,"ни разу","1 раз","% раза"}">!} - (popis), (veľkosť), Stiahnuté (dátum,"Y-m-d"), Počet stiahnutí (prístupov)

    Vyzerá to takto:

    Po určitom vylepšení to začalo vyzerať takto (stále bez tlačidiel):

    Kód riadku:

    ABAP

    (ikona_typu_suboru) (názov)(Veľkosť súboru: (veľkosť), Nahrané: (dátum,"d.m.Y"), Stiahnuté (počet prístupov)
    (popis)

    Zoznam možností je pomerne široký:

    • Súbory môžete nahrať aj s jeho pomocou (kliknutím na šípku), ako aj označiť miesto, kde sa nachádzajú, ak boli nahrané skôr cez FTP, stačí zadať URL
    • Skryje skutočné umiestnenie súboru, môžete nahradiť akúkoľvek potrebnú kombináciu adries URL
    • Môžete použiť tlačidlo sťahovania vrátane vlastného
    • Nepočítajte stiahnutia od správcu a všetky nepotrebné adresy IP zahrnuté v zozname vylúčení počítadla
    • Či sa majú počítať opakované sťahovanie v určitom čase z rovnakej adresy IP
    • Môžete nastaviť niekoľko formátov - s obrázkom, s počítadlom, bez počítadla atď. a každý z nich použiť vo vhodnej situácii
    • Vo formulári je vyloženie protokolu o sťahovaní csv súbor a

    Ak sa nahrá akýkoľvek súbor mp3 alebo video, musíte pre ne určiť, vynútiť sťahovanie alebo nie. Ak vynútite - potom kliknutím naň sa stiahne, ak nie je zaškrtnuté - prehrá sa, potom sa uloží - pravým tlačidlom myši. Chcem poznamenať, že súbory nahrané s jeho pomocou nie sú umiestnené tam, kde je vytvorený váš špeciálny adresár pre súbory, ale v ním vytvorenom wp-content/uploads/downloads/ - musíte si to zapamätať, ako aj skutočnosť, že pri ich vymazaní zo štatistiky - fyzicky sa vymažú aj súbory zo servera. S tými, ktoré sa nahrávajú cez FTP - je všetko OK. Navyše, ak vložíte odkaz do rôznych príspevkov na rovnaký súbor, potom som nerozumel, či by to zhrnulo. Žiaľ, nepodporuje žiadne obmedzenia sťahovania, okrem toho, že môžete zakázať sťahovanie všetkým, okrem registrovaných používateľov. Ak chcete zobraziť názov súboru v spodnom riadku prehliadača alebo ho potrebujete zmeniť na jeho ID - nezabudnite ísť do nastavení->permalinks a tam uložiť konfiguráciu, aby bolo všetko správne zaregistrované v .htaccess - Bez toho sa súbory nestiahnu.!

    Štatistiky sa zobrazujú na troch miestach naraz – v konzole, v informáciách o súboroch a v protokoloch sťahovania. To spôsobuje určité nepríjemnosti, napríklad keď potrebujete vidieť, kedy bol súbor naposledy stiahnutý, ale môžete nahrať štatistiku vo forme súboru csv a potom si to v Exceli vyriešiť. Ak vezmeme do úvahy skutočnosť, že Excel má diabolskú schopnosť zostaviť potrebné tabuľky a grafy, možno to nie je zlé. Myslím si však, že screenshoty povedia viac:

    Snímka obrazovky samotného denníka:

    Obrovským plusom zároveň je, že sa v konzole objaví widget so štatistikami ako je tento:

    Vo všeobecnosti môžeme povedať, že po menšom ladení plugin robí svoju prácu v pohode.

    Tento plugin napísal rovnaký autor ako plugin WP-Polls, ktorý používam napríklad na tejto stránke. Aj keď je v porovnaní s ním rádovo menej populárny. Ale uvidíme, či je to zaslúžené. Všetku dokumentáciu nájdete na webovej stránke autora. Vo svojom jadre je plugin úplne identický s predchádzajúcim - šablóna je napísaná rovnakým spôsobom, neexistujú žiadne obmedzenia na stiahnutie, s výnimkou registrovaných alebo neregistrovaných používateľov, je tiež potrebné použiť krátky kód formulára

    ABAP

    [downloadid="7592"]

    a k ostatným bodom:

    • Súbory môžete nahrať aj s jeho pomocou (do dvoch Mb, dobre, alebo koľko máte zadaných v php.ini), aj určiť miesto, kde sa nachádzajú, ak boli nahrané skôr cez FTP, môžete jednoducho zadať URL
    • Skryje skutočné umiestnenie súboru, ale nie je možné nahradiť žiadnu potrebnú kombináciu URL, existuje len niekoľko pevných možností, hlavná mi nefungovala
    • Môže byť nakonfigurovaný tak, aby návštevníkom zobrazoval informácie o veľkosti súboru, koľkokrát bol stiahnutý, kedy bol stiahnutý
    • Môžete zobraziť ikonu pre príslušné typy súborov
    • Počítadlo môžete vynulovať alebo nastaviť požadovanú hodnotu

    Existujú však aj určité rozdiely. Po prvé, vo vizuálnom editore nie je žiadne tlačidlo, ktoré by sa dalo použiť na vloženie krátkeho kódu. Skôr je tam tlačidlo, ale aby ste ho mohli použiť, musíte najskôr pridať počítadlo súboru v nastaveniach pluginu a následne toto tlačidlo pridá ID počítadla priamo do príspevku. Po druhé, existuje iba jedna šablóna a výstup pre rôzne súbory iné informácie nebudú fungovať. Z plusov štatistiky ukazuje, kedy bol súbor naposledy stiahnutý, inak sú len mínusy - žiadne nahrávanie do súboru csv, žiadne prezeranie toho, kto stiahol (nie sú žiadne IP), žiadne rozdelenie podľa dátumu.

    Ale ikony sú krajšie (neskôr som ich pripojil k predchádzajúcemu pluginu). Výsledok jeho práce je nasledovný:

    Taktiež sa pri odstraňovaní záznamu z databázy pýta, či je potrebné vymazať aj samotný súbor, alebo ho nechať. Ale z hľadiska celkových vlastností sa mi páčil menej ako predchádzajúci - aspoň tým, že súbor musíte vložiť samostatne mimo príspevku, nemá však žiadne špeciálne mínusy - výber medzi nimi je vec vkusu, prvý má viac možností, podrobnejšie štatistiky, druhý - o niečo pohodlnejšie (aj keď slabšie) štatistiky a menej funkcií.

    Do akcie vyrazilo ťažké delostrelectvo. Doplnok je väčšinou rusifikovaný a je to správca sťahovania, nie počítadlo. Je možné obmedziť rýchlosť sťahovania a počet stiahnutí na osobu a deň.

    Ale povedal by som, že niektoré funkcie tohto pluginu sú nadbytočné a štatisticky potrebné nestačia. Množstvo nastavení, widgety na sťahovanie, komplexný synchronizačný systém, systém zobrazovania mp3 tagov, zobrazovanie flv súborov, organizovanie mini-súborového úložiska, zobrazovanie všetkých súborov špecifikovaných na stránke na začiatku alebo na konci príspevku atď. , atď.

    Ani nechcem dávať screenshoty všetkých nastavení.

    Avšak s týmto všetkým - aby som krásne zobrazil šablónu v príspevku - som v ňom musel upraviť súbor štýlu a zmenšiť šírku. Navyše, aby sa zobrazila predvolená šablóna, je potrebné po vložení krátkeho kódu pomocou tlačidla

    perami zadajte do kódu názov šablóny. Niektoré sú v rozpore s ruským názvom. Mimochodom, vyzerá to takto (dám tri varianty šablón naraz):

    Počíta - cez stump-deck (no, alebo viac ako jedno stiahnutie z IP sa nepočíta, neviem). Štatistiky sú o niečo menej ako úplne chudobné, veľmi podobné doplnku, o ktorom sme práve hovorili vyššie.

    Vo všeobecnosti som zostal s dojmom - zdravý, ale hlúpy. Vhodné pre nejaké ukladanie súborov a dokonca aj vtedy - ak v spojení s akýmkoľvek iným pluginom. Pozrel som naňho – áno, a zdemolovaný.

    Úprimne povedané, keď som si prečítal jeho popis, pomyslel som si - to je to, čo potrebujem!

    Počítadlo, ochrana heslom, skrátený kód vložený tlačidlom, upraviteľné tlačidlo atď.

    A vyzerá to takto (dal dve použité tri šablóny naraz):

    Ak však chcete pridať súbor, musíte preň najskôr pridať počítadlo v zásuvných moduloch. Po druhé, neexistujú prakticky žiadne štatistiky.

    Po tretie, nemôžete nastaviť zobrazenie veľkosti súboru pre používateľa. Po štvrté, neexistuje obmedzenie rýchlosti sťahovania, súbor je chránený iba heslom. Šablóny nie je možné upravovať. A veľký nápis s ponukou na kúpu prémiovej verzie za 45 dolárov. Vo všeobecnosti chápete. Všetko chutné je pre babičky. Deaktivovaný a zbúraný. A krásne rámy, gombíky atď. - Sám budem ordinovať v slohoch, keď budem chcieť.

    Zhrnutie

    Nainštalujte štandardným spôsobom (skopírovaním do adresára wp-content/plugins/download-monitor/, nechať aktualizovať, nahradiť všetky ikony ikonami z archívu v adresári wp-content/plugins/download-monitor/img/filetype_icons/ a aktivovať.

    V budúcnosti, ak sa mi to dostane do rúk, rozmýšľam, že spravím odkazy do pekných rámikov pomocou css3, o ktorých s najväčšou pravdepodobnosťou tiež napíšem. Zostaňte s nami 🙂

    Upd. Teraz autor upravil WordPress plugin Stiahnite si Monitor a vytvorte úplne odlišnú verziu od originálu. Skontroloval som to, ale páčilo sa mi to oveľa menej, pretože šablóna formulára, ako bude vyzerať odkaz na stiahnutie, sa teraz nedá tak ľahko upraviť. Autor sa rozhodol, že stačia hotové prednastavené pohľady. Napríklad, ak ste v ponuke sťahovania, vyberte nastavenia požadovaný pohľad zo šiestich predinštalovaných kliknite na tlačidlo Uložiť

    Potom pri výbere druhej možnosti dostanete niečo takéto:

    Tie. na Nová verzia pomocou riadku, ktorý som uviedol v popise nebude fungovať, ale bude potrebné napísať špeciálny php súbor, ktorý by táto výstupná šablóna popisovala. Najsmutnejšie však nie je ani toto - ale skutočnosť, že tento php súbor, ak sa vloží do adresára s pluginom, sa prepíše pri každej aktualizácii pluginu. A ak to vložíte do adresára s témou, potom keď zmeníte tému (aj keď sa to, samozrejme, stáva oveľa menej často). Ale v každom prípade, napísať to je dosť namáhavá práca a zatiaľ nemám chuť to robiť. Takže jediné plus aktualizovaného pluginu

    Rozhodol som sa zistiť, koľkokrát sa niektorý z mojich skriptov stiahne zo stránky. Aby som to urobil, rozhodol som sa napísať pre stránku počítadlo sťahovania súborov. Na internete je veľa implementácií tejto úlohy, ale napriek tomu si prečítajte moje riešenie.

    Logika počítadla sťahovania je celkom jednoduchá. Na jeho realizáciu použijeme môj obľúbený ajax. Zavesíme na tlačidlo, keď nastane udalosť clik, volanie cez ajax do php súboru počítadla. V php sa žiadosť ajax spracuje a zapíše do textový súborúdaje o celkovom počte zoskokov. Po úspešnom zaznamenaní sa vráti odpoveď s celkovým počítadlom stiahnutia a používateľ je presmerovaný na odkaz na stiahnutie súboru (súbor sa sťahuje). Tu je taká jednoduchá logika Teraz ju začnime implementovať. Vopred si vytvoríme súbor test.zip na stiahnutie. Urobme kód tlačidla a ukážme počítadlo skokov.

    Počet skokov:

    Vytvorili sme tlačidlo s id="btnSend" , počítadlo zobrazíme v rozpätí s id="countView" , do atribútu data-download uložíme odkaz na stiahnutý súbor

    Teraz k tlačidlu pripojíme obsluhu kliknutia. Tu už použijeme js a jquery. Môžete si prečítať o tom, ako implementovať clik pomocou jQuery. Pred inštaláciou obslužného programu kliknutia však ajax sprístupníme súbor count.php, ktorý bude obsahovať všetku prácu počítadla. Môžete si prečítať viac o prenose údajov ajax. Toto je potrebné na zobrazenie zo súboru, do ktorého počítadlo zapisuje, počet už vykonaných stiahnutí a zobraziť ich v rozsahu s id="countView"

    /*získať aktuálny počet stiahnutí*/ $(document).ready(function()( //zakázať požiadavku ajax vo vyrovnávacej pamäti //inak počítadlo zlyhá $.ajaxSetup((cache: false)); var html; $. ajax (( //ako budeme odovzdávať typ údajov: "GET", //kam odovzdáme url: "count.php", //aké údaje odovzdávame údaje: (príznak: 2), //udalosť po prijatí odpovede from count.php success : function(data)( html=data; //vypíše aktuálny počet stiahnutí $("#countView").html(html); ) )); /*zavesí udalosť na tlačidlo sťahovania súboru */ var clickevent=false; //kliknutie na kontrolný príznak //obslužný nástroj kliknutia $("#btnSend").click(function()( if(!clickevent)( $.ajax(( //ako pošleme typ údajov: "GET", //kam odovzdáme url: "count.php", //aké údaje sa majú odoslať údaje: (príznak: 1), //udalosť pred odoslaním ajax beforeSend: function()( //ak sa kliklo na tlačidlo potom true clickevent=true; ), //udalosť po prijatí odpovede, //získanie údajov v údajoch úspešné: function(data)( //po vykonaní akcií znova povoliť //spracovanie kliknite na tlačidlo clickevent=false; html=údaje; //vypíše nové počítadlo $("#countView").html(html); //získajte odkaz zo sťahovania údajov //presmerujte na odkaz na stiahnutie, stiahnite si súbor window.location.href = $("#btnSend").data("download"); ))); ) vrátiť false;//zakázať spracovanie udalosti po kliknutí )); ));

    Aby som predišiel opakovanému chybnému stláčaniu tlačidla Odoslať, zaviedol som do skriptu príznak clickevent. Kým sa nevráti odpoveď z count.php s aktualizovanými údajmi počítadla, kliknutie na tlačidlo bude zakázané. Myslím, že práca kódu po kliknutí na tlačidlo je viac-menej jasná. Po kliknutí na tlačidlo stiahnuť sa údaje prenesú do súboru count.php, kde sa spracujú a vrátia sa aktualizované údaje počítadla, dôjde k presmerovaniu na odkaz na stiahnutie a podľa toho sa súbor stiahne.

    Poďme si teraz rozobrať srdce nášho skriptu, konkrétne súbor count.php.

    Funkcia clearInt ($date)( //prenesenie dátumu na nezáporné číslo návrat abs((int)$date); ) if($_SERVER["HTTP_X_REQUESTED_WITH"] == "XMLHttpRequest") ( //kontrola, ktorý príznak prišiel if (clearInt($_GET["flag"]==1)) ( //otvorte súbor na čítanie $f=fopen("mycount.txt","a+"); //blokuje prístup k súboru z iných programov flock($ f,LOCK_EX); //získanie hodnoty počítadla zo súboru $count=fread($f,100); //pridanie počítadla @$count++; //prepísanie súboru ftruncate($f,0); //pridanie nového počítadla čítajúceho fwrite ($f,$count); //zavrieť súbor fclose($f); //vrátiť hodnotu echo $count; ) if(clearInt($_GET["flag"]==2) ) ( $c=fopen(" mycount.txt","a+"); flock($c,LOCK_EX); $festc=fread($c,100); fclose($c); //vrátená hodnota echo $festc ;))

    Tu si myslím, že to isté je jednoduché. Ak príde príznak 1, potom prepíšeme počítadlo. Ak príde príznak 2, údaje o počte stiahnutí sa jednoducho vrátia. Všetko ostatné je podľa mňa jasné z komentárov v kóde.

    Počítadlo sťahovania Joomla

    Rozhodol som sa pripojiť podobné počítadlo k jednému z mojich joomla projektov. Teoreticky je samozrejme potrebné napísať buď samostatný modul, alebo integrovať kód do kontroléra komponentu obsahu com, aby sa údaje počítadla zapisovali nie do súboru, ale do databázy a pre každý článok zvlášť. Na takýto vývoj ale nie je čas a problém som vyriešil jednoduchšie. Potreboval som počítadlo na jednu stranu. Zobral som súbor count.php a preniesol ho do šablóny joomla, ktorá je zapnutá tento moment pripojený (v koreňovom adresári stránky šablóny/vaša_šablóna). Nezabudnite vložiť definovaný kód ("_JEXEC") alebo zomrieť; úplne hore na count.php; (toto je pre joomla). Tlačidlo sťahovania vložíme do stránky, ktorú vytvárame a js kód môžeme tiež vložiť do stránky, prípadne pripojiť samostatný súbor. Napríklad mám samostatný súbor (nachádza sa v priečinku šablóny js). V samotnej šablóne, v hlavičke, je spojenie vytvorené pomocou kódu

    A nezabudnite dostať s požiadavkou ajax, pristupujeme k adrese URL: "/index.php?tmpl=count" a nie k adrese URL: "count.php", . Len tak som priskrutkoval počítadlo sťahovania súborov do joomly.

    Ak chcete stiahnuť počítadlo, postupujte podľa jednoduchých pokynov.

    1. Ak chcete spustiť sťahovanie inštalačného súboru, kliknite na modré tlačidlo „Stiahnuť zo servera“, ktoré sa nachádza hneď vyššie.
    2. Potom server pripraví a skontroluje inštalačný súbor na prítomnosť vírusov.
    3. Ak súbor nie je infikovaný a je s ním všetko v poriadku, zobrazí sa sivé tlačidlo „Stiahnuť“.
    4. Kliknutím na tlačidlo „Stiahnuť“ sa súbor stiahne do vášho počítača.

    Nežiadame od vás zdĺhavý registračný proces ani posielanie SMS na potvrdenie. Stačí stiahnuť a užívať si =)

    Ako nainštalovať Counter

    Pri inštalácii programu postupujte podľa jednoduchých pokynov, ktoré platia pre väčšinu programov.

    1. Spustite stiahnutý súbor dvojitým kliknutím naň. Všetky inštalačné súbory sú prevzaté z oficiálnych webových stránok vývojárov.Dátum poslednej aktualizácie súboru Counter verzie 1.1 bol 28. decembra 2016 o 4:38.
    2. V zobrazenom okne prijmite licenčnú zmluvu. Licenčnú zmluvu si môžete prečítať aj na oficiálnej stránke vývojára programu.
    3. Vyberte požadované komponenty, ktoré chcete nainštalovať. Zrušte začiarknutie políčok, ktoré môžu byť potrebné na inštaláciu ďalších programov.
    4. Vyberte priečinok v počítači, do ktorého chcete program nainštalovať. Vo väčšine prípadov program automaticky vyberie priečinok, napríklad v systéme Windows je to C:\Program Files\
    5. Nakoniec správca inštalácie programu môže ponúknuť vytvorenie „Skratky na pracovnej ploche“ alebo „Priečinok ponuky Štart“.
    6. Potom sa začne proces inštalácie. Po dokončení vás môže správca inštalácie požiadať o reštartovanie počítača, aby program fungoval správne.

    V dnešnom článku si vytvoríme jednoduchý, ale spoľahlivý systém na sledovanie nahrávania súborov. Každý súbor bude mať v databáze zodpovedajúci riadok, kde bude uložený celkový počet stiahnutí daného súboru. PHP aktualizuje databázu MySQL a presmeruje používateľov na príslušné súbory.

    Ak chcete sledovať počet stiahnutí, všetko, čo musíte urobiť, je nahrať súbory do správneho priečinka a na prístup k nim použiť konkrétnu adresu URL.

    Krok 1 – XHTML

    Najprv potrebujeme označenie XHTML. Je to veľmi jednoduché - ide o bežný blok Správca súborov, ktorý obsahuje zoznam s odrážkami, v ktorom bude odkaz na každý súbor umiestnený vo vnútri prvku li.

    Súbory, pri ktorých sa bude počítať počet stiahnutí, je potrebné nahrať do priečinka súbory nachádza v koreňovom adresári skriptu (ako je usporiadaná štruktúra súborov, môžete vidieť v archíve príkladov). PHP prejde všetky súbory v priečinku a pridá každý súbor ako samostatný prvok li do zoznamu s odrážkami.

    demo.php

    • photoShoot-1.0.zip 0 Stiahnuť ▼

    Všimnite si, že atribút href pri odkaze odovzdá názov nahrávaného súboru ako parameter súboru download.php. Tu sa budú počítať stiahnutia, ako uvidíte neskôr.

    Na organizovanie počítania sťahovania nemusíte používať toto konkrétne rozhranie. Môžete len odkazovať na download.php na stránkach blogu alebo webovej lokality a všetky stiahnutia sa započítajú správne.

    Krok 2 – CSS

    Keď je naše označenie XHTML pripravené, môžeme sa sústrediť na vzhľad a dojem z nášho skriptu. Nižšie uvedené štýly CSS priraďujú vzhľad bloku správcu súborov prostredníctvom jeho ID, pretože na stránke máme iba jeden. Zostávajúce prvky sú štylizované prostredníctvom názvov tried.

    style.css

    #file-manager( background-color:#EEE; border:1px solid #DDD; margin:50px auto; padding:10px; width:400px; ) ul.manager li( background:url("img/bg_gradient.gif") repeat-x center bottom #F5F5F5; border:1px solid #DDD; border-top-color:#FFF; list-style:none; position:relative; ) ul.manager li a( display:block; padding:8px; ) ul.manager li a:hover .download-label( /* Keď umiestnite kurzor myši nad zoznam, zobrazí sa v ňom zelený text na stiahnutie: */ display:block; ) span.download-label( background-color:#64B126; border :1px plné #4E9416; farba:biela; displej:žiadny;veľkosť písma:10px; výplň:2px 4px; pozícia:absolútna; pravá:8px; text-decoration:none; text-shadow:0 0 1px #315D0D; hore :6px; /* Zaoblené rohy CSS3 */ -moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; ) span.download-count( color:#999; font-size: 10px; padding:3px 5px; position:absolute; text-decoration:none; )

    Všimnite si, že tu je nadpis „stiahnuť“ predvolene skrytý s vlastnosťou displej: žiadny. Zobrazuje sa cez displej:blok, iba keď umiestnite kurzor myši na odkaz, žiadny JavaScript. Na zaoblenie rohov titulku sa používa trochu CSS3.

    Krok 3 - PHP

    Ako sme povedali vyššie, PHP prechádza celým priečinkom súbory a vypíše každý súbor ako prvok li zoznamu s odrážkami. Pozrime sa bližšie na to, ako sa to deje.

    demo.php - Top

    // Hlásenie chýb: error_reporting(E_ALL^E_NOTICE); // Vrátane súboru pripojenia DB: required "connect.php"; $extension=""; $files_array = pole(); /* Otvorenie adresára s miniatúrami a prezretie všetkých miniatúr: */ $dir_handle = @opendir($adresár) or die("Vyskytla sa chyba vo vašom adresári súborov!"); while ($file = readdir($dir_handle)) ( /* Preskočenie systémových súborov: */ if($file(0)==".") pokračovať; /* end() vráti posledný prvok poľa vygenerovaného funkcia explode(): */ $extension = strtolower(end(explode(".,"$file))); /* Preskočenie súborov php: */ if($extension == "php") pokračovať; $files_array =$súbor; ) /* Zoradenie súborov podľa abecedy */ sort($pole_suborov,SORT_STRING); $file_downloads=array(); $vysledok = mysql_query("SELECT * FROM download_manager"); if(mysql_num_rows($result)) while($row=mysql_fetch_assoc($result)) ( /* Kľúč poľa $file_downloads bude názov súboru a bude obsahovať počet stiahnutí: */ $file_downloads[ $row["filename"]]=$row["downloads"]; )

    Všimnite si, ako vyberáme všetky záznamy z tabuľky download_manager pomocou mysql_query() a potom ich pridajte do poľa $file_downloads, s názvom súboru kľúča poľa a stiahnutím hodnoty. Takže ďalej v kóde môžeme písať $file_downloads['archive.zip'] a zobrazí sa počet stiahnutí tohto súboru.

    Nižšie je uvedený kód, ktorý sa používa na generovanie prvkov li zoznamu s odrážkami.

    demo.php - Centrálna časť

    Foreach($files_array ako $key=>$val) ( echo "

  • ".$val." ".(int)$file_downloads[$val]." Stiahnuť ▼
  • "; }

    Všetko je veľmi jednoduché - prechádzame cyklom pre každý podľa poľa $files_array a zobraziť potrebné údaje na stránke v príslušnom označení.

    Teraz sa pozrime bližšie na to, ako funguje účtovníctvo pri sťahovaní.

    download.php

    // Hlásenie chýb: error_reporting(E_ALL^E_NOTICE); // Vrátane súboru pripojenia: require("connect.php"); if(!$_GET["súbor"]) error("Chýba parameter!"); if($_GET["súbor"](0)==".") error("Chybný súbor!"); if(file_exists($directory."/".$_GET["file"])) ( /* Ak návštevník nie je vyhľadávač, počítajte downoad: */ if(!is_bot()) mysql_query(" INSERT INTO download_manager SET filename="".mysql_real_escape_string($_GET["file"])."" PO AKTUALIZÁCII DUPLIKÁTOVÉHO KĽÚČA downloads=downloads+1"); header("Umiestnenie: ".$directory."/".$_GET[" súbor"]); exit; ) else error("Tento súbor neexistuje!"); /* Pomocné funkcie: */ function error($str) ( die($str); ) function is_bot() ( /* Táto funkcia skontroluje, či je návštevník robot vyhľadávacieho nástroja */ $botlist = array("Teoma" , "alexa", "froogle", "Gigabot", "inktomi", "looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory", "Ask Jeeves", "TECNOSEEK", "InfoSeek", "WebFindBot", "girafabot", "crawler", "www.galaxy.com", "Googlebot", "Scooter", "Slurp", "msnbot", "appie", "FAST", "WebBug", "Spade", "ZyBorg" " ", "rabaz", "Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot", "Mediapartners-Google", "Sogou web spider", "WebAlta Crawler", "TweetmemeBot", "Butterfly", " Twitturls","Me.dium","Twiceler"); foreach($botlist ako $bot) ( if(strpos($_SERVER["HTTP_USER_AGENT"],$bot)!==false) vráti hodnotu true; // Je robot ) vráti hodnotu false; // Nie je to robot )

    Tu určite musíte skontrolovať, či návštevník nie je robot vyhľadávacieho nástroja, ktorý prehľadáva vaše odkazy. Roboty sú dobrými návštevníkmi, pretože pomáhajú dostať vašu stránku do zoznamu vyhľadávačov, no v našom prípade môžu skresliť štatistiky sťahovania. Preto sa databáza aktualizuje až po tom, čo návštevník prejde overením is_bot().

    Krok 4 - MySQL

    Ako sme uviedli v predchádzajúcom kroku, počet stiahnutí sa zaznamenáva ako reťazec v tabuľke download_manager databázy MySQL. Najprv mi dovoľte vysvetliť, ako táto časť dotazu funguje:

    download.php

    INSERT INTO download_manager SET filename="filename.doc" ON DUPLIKÁTNY KĽÚČ UPDATE downloads=downloads+1

    Prvá časť dotazu hovorí MySQL, aby vložila nový riadok do tabuľky. správca sťahovania a nastavte hodnotu poľa názov súboru sa rovná názvu požadovaného súboru, ktorý sa má načítať. Okrem toho pole názov súboru definovaný ako jedinečný index tabuľky. To znamená, že riadok so špecifickým názvom súboru je možné vložiť iba raz, inak dôjde k chybe duplicitného poľa kľúča.

    V tomto prípade nadobudne účinnosť druhá časť žiadosti - PRI AKTUALIZÁCII DUPLIKÁTU KĽÚČA, čo zvyšuje hodnotu poľa K stiahnutiu o jeden, ak je súbor už v databáze.

    Týmto spôsobom sa nové súbory automaticky vložia do databázy pri prvom nahraní.

    Krok 5 - jQuery

    Aby bolo naše počítadlo sťahovania viac vizuálne, bolo by pekné pridať možnosť aktualizovať počítadlo vedľa názvu súboru hneď, ako používateľ začne sťahovať. Zatiaľ, aby používateľ videl nové hodnoty počítadiel, musí stránku znova načítať.

    Dá sa to opraviť malým kúskom kódu:

    script.js

    $(document).ready(function()( /* Tento kód sa spustí po úplnom načítaní modelu DOM */ $("ul.manager a").click(function()( var countSpan = $(".download) -count",this); countSpan.text(parseInt(countSpan.text())+1); )); ));

    Práve sme priradili obsluhu udalosti ku kliknutiu na odkaz. Zakaždým, keď používateľ klikne na odkaz, zvýšime aktuálnu hodnotu stiahnutia o jednu.

    Krok 6 - htaccess

    Musíme urobiť ešte jednu vec, kým budeme môcť označiť úlohu za dokončenú. Možno ste si už všimli, že niektoré typy súborov sa predvolený prehliadač pokúša otvoriť okamžite. Namiesto toho musíme začať sťahovať súbor. Je to celkom jednoduché pridaním niekoľkých riadkov do súboru .htaccess nachádza v priečinku súbory:

    Aplikácia ForceType/oktetový prúd

    To je všetko, naše počítadlo sťahovania je pripravené.

    Záver

    Ak chcete spustiť tento príklad na svojom vlastnom serveri, budete musieť vytvoriť tabuľku download_manager v databáze MySQL, ku ktorej samozrejme máte prístup. V archíve s príkladom je súbor table.sql, ktorý obsahuje potrebný SQL kód, ktorý vytvorí požadovanú tabuľku.

    Potom v súbore zadajte podrobnosti o pripojení k databáze configuration.php.