Zadejte hledaný výraz...

Počítání stažení souboru se zápisem do souboru

Aleshoo
verified
rating uzivatele
(10 hodnocení)
17. 5. 2015 20:44:19
Ahoj, máte někdo prosím nějaké počítání stažených souborů se zápisem do souboru. Nejlépe do html, ze kterého je odkaz na stažení.
Zkusil jsem poskládat něco ze dvou návodů, ale nefunguje mi to. Hledám řešení bez třetích stran a bez databáze.
Víte prosím o něčem, nebo proč tento kód nefunguje (chmod 777 mám nastavené). Odkaz na webu je a href="stahni.php" a v tom souboru je pak následující kód.
Díky!!!
$soubor = "muj_soubor.pdf";
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename="$soubor"");
readfile ($soubor);
?>
$file = $_GET;
$list = "seznam.txt"; // do toho se má ukládat ten počet stažení, ale raději bych do stahnout.html
$size = filesize($list) + 1;
$fp = fopen($list, "r");
$content = fread($fp, filesize($list));
$dwn = explode("n", $content);
$i=0;
$temp = "";
while ($dwn != ""){
$tmp = explode ("|", $dwn);
if ($tmp == $file){
$tmp += 1;
}
$tmp .="n";
$temp .= implode("|", $tmp);
$i++;
}
fclose($fp);
$fp = fopen($list, "w+");
fputs($fp, $temp, $size);
fclose($fp);
?>
17. 5. 2015 20:44:19
https://webtrh.cz/diskuse/pocitani-stazeni-souboru-se-zapisem-do-souboru#reply1113686
Petr Soukup
verified
rating uzivatele
(5 hodnocení)
18. 5. 2015 02:45:37
Není možné ukládat to spíš do databáze? Takhle bude vznikat spousta problémů, pokud například budou soubor stahovat dva uživatelé zároveň.
Pokud navíc jde jen o přibližné měření pro nějakou statistiku, tak bude daleko jednodušší použít na to spíš Google Analytics - jedním řádkem kódu se pošle záznam do Analytics a půjde to pak krásně vyhodnocovat i podle prohlížeče, doby na stránce a podobně.
18. 5. 2015 02:45:37
https://webtrh.cz/diskuse/pocitani-stazeni-souboru-se-zapisem-do-souboru#reply1113685
Crusty
verified
rating uzivatele
(2 hodnocení)
18. 5. 2015 03:47:37
jednoduche pocitatko napr takto
18. 5. 2015 03:47:37
https://webtrh.cz/diskuse/pocitani-stazeni-souboru-se-zapisem-do-souboru#reply1113684
Petr Soukup
verified
rating uzivatele
(5 hodnocení)
18. 5. 2015 10:49:57
Napsal Crusty;1195449
jednoduche pocitatko napr takto
Pokud budou dva návštěvníci zároveň, tak se do souboru zapíšou obě čísla.
18. 5. 2015 10:49:57
https://webtrh.cz/diskuse/pocitani-stazeni-souboru-se-zapisem-do-souboru#reply1113683
Crusty
verified
rating uzivatele
(2 hodnocení)
18. 5. 2015 11:33:25
pravda, tudiz pridat nejaky ten zamek
http://php.net/manual/en/function.flock.php
Jinak to Analytics bude urcite elegantnejsi reseni.
Jaky kus kodu to obslouzi?
18. 5. 2015 11:33:25
https://webtrh.cz/diskuse/pocitani-stazeni-souboru-se-zapisem-do-souboru#reply1113682
Petr Soukup
verified
rating uzivatele
(5 hodnocení)
18. 5. 2015 11:58:39
Nebo použít file_get_contents/file_put_contents. V případě kolize se zaznamená jen jeden přístup, což je ale pořád lepší, než je násobit.
18. 5. 2015 11:58:39
https://webtrh.cz/diskuse/pocitani-stazeni-souboru-se-zapisem-do-souboru#reply1113681
Aleshoo
verified
rating uzivatele
(10 hodnocení)
18. 5. 2015 12:43:22
Copak analytics mohou změnit kód na stránce? Já potřebuji také dát vědět uživatelům počet stažení souboru. Vlastní počítadlo je lepší cesta. Toto od Crustyho počítá.
Teď ještě doladit, jak by to přepsalo hodnotu ne v souboru counter.txt, ale vyhledalo správný řádek a přepsalo hodnotu v souboru index.html
Nebo jak v html zobrazit jiný soubor na stejném řádku, možná přes iframe. Zkusím.
Díky
18. 5. 2015 12:43:22
https://webtrh.cz/diskuse/pocitani-stazeni-souboru-se-zapisem-do-souboru#reply1113680
Crusty
verified
rating uzivatele
(2 hodnocení)
18. 5. 2015 13:05:36
tam kde to chcete zobrazit, tak asi by sel pouzit iframe. Pokud je to v php souboru tak lze pouzit napr
a v showNumDownloads.php bude napr: (zde s lockem, pridat i do predesleho)
18. 5. 2015 13:05:36
https://webtrh.cz/diskuse/pocitani-stazeni-souboru-se-zapisem-do-souboru#reply1113679
Pro odpověď se přihlašte.
Přihlásit