phpRS help fórum : phpRS Fórum
Hlavní diskuzní phpRS fórum. Najdete zde odpovědi na otázky týkající se provozu a instalace phpRS systému.
phpRS - redakční a informační systém
Download - omezeni downloadu
Zaslán uživatelem/kou: Lavo (IP adresa zaznamenána)
Datum: 2006-08-19, 04:56

Predem zdravim mistni experty, snad si najdete chvili.

Potreboval bych v sekci download nastavovat maximalni pocet stazeni za den. V php a mysql se vyznam, tak, no rekneme malo s ucenim stylem pokus-omyl.

Predstavoval bych si to asi nejak takhle:
pridat do tabulky rs_download sloupce pro max pocet stazeni za den a datum posledniho stazeni
pri kliknuti na soubor si nejdriv kontrolovat, jestli neni prekrocen limit, pokud se lisi datum aktualni od data posledniho stazeni, vyresetovat pocitadlo, +1. (pridat test na denni limit k testum existence souboru a potrebneho levelu?)

Prakticke reseni snad nejak dohromady dam, jde mi o provedeni, delat takhle/ jinym zpusobem/nedelat vubec? :) Budu vdecny za kazdou radu, diky.



Celkem upraveno 2×. Poslední úprava Lavo v 19.08.2006 04:57.

Re: Download - omezeni downloadu
Zaslán uživatelem/kou: Michalek (IP adresa zaznamenána)
Datum: 2006-08-19, 10:08

Udělal bych to takhle :-) Přidat dva sloupce (posledni_stazeni, limit) a přesně jak popisuješ.
Nejdřív kouknout na datum posledního stažení, stačí ukládat ve formátu YYYY-MM-DD a když dnešní datum stejné, příčíst limit+1 a stáhnout; když dnešní datum jiné, reset limit na 1 a stáhnout. A když datum=dnešní datum a limit>x tak nestáhnout.

Bacha samozřejmě na úpravu databáze, když upravíš rs_download, musíš to zohlednit v administraci při přidávání/upravování souboru.

--
[ SAFUS.EU | OFFLINE | FOREVER ]



Celkem upraveno 1×. Poslední úprava Michalek v 19.08.2006 10:10.

Re: Download - omezeni downloadu
Zaslán uživatelem/kou: Lavo (IP adresa zaznamenána)
Datum: 2006-08-19, 11:03

Jojo, tak jsem to presne myslel, jsem rad, ze to tak pujde, dik :)

Re: Download - omezeni downloadu
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2006-08-19, 21:05

Toto riešenie súce bude fungovať ale vidím v ňom systémovú chybu, ktorú nebude problém hacknúť. Tento systém nie je problém obísť. Stačí vedieť link na priame umiestnenie súboru (zistíš jednoducho) a nejaké obmedzenia pokročilejšieho usera už nezastavia. Externisti môžu potom linkovať priamo na súbor a obmedzenie downloadov je v... pr... Ehmmm ...v kýbli. Spraviť by sa to dalo umiestnením obsahu súboru do databázy čo nie je vôbec ideálne ak ide o väčšie súbory... Osobne by som to riešil úpravou download sekcie tak, aby pri posielaní súboru smeroval link na pomocný php súbor s premenlivým identifikačným parametrom v url, ktorý by identifikoval požadovaný súbor bez toho aby prezradil jeho skutočnú adresu.

Re: Download - omezeni downloadu
Zaslán uživatelem/kou: Michalek (IP adresa zaznamenána)
Datum: 2006-08-19, 21:13

Dobrá připomínka. Mám hotové podstrčení jiného názvu souboru, takže si kdyžtak vezmi inspiraci.
Soubor se ve skutečnosti jmenuje 0123456789.rar, při stahování je vidět zaheslovany.rar.

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=zaheslovany.rar");
readfile('0123456789.rar');


--
[ SAFUS.EU | OFFLINE | FOREVER ]



Celkem upraveno 1×. Poslední úprava Michalek v 19.08.2006 21:14.

Re: Download - omezeni downloadu
Zaslán uživatelem/kou: Lavo (IP adresa zaznamenána)
Datum: 2006-08-20, 00:21

S tim jsem tak nejak pocital, ale prvne bych rad ten zaklad. Zatim mam teda hotovou jen admin sekci, takze az dodelam zbytek, tak teprv poresim to zabezpeceni. A vubec, kdyz to budou lidi obchazet, tak jim download zatrhnu uplne a budou mit prd :)

edit:
tak uz mam jakz takz funkcni verzi, teda aspon podle testu, vcetne tohohle maskovani url souboru

Citace:

header("Content-Disposition: attachment; filename=zaheslovany.rar");
readfile('0123456789.rar');


myslim, ze dalsimi opatrenimi to neni potreba zatim hrotit. no, muzete si to zkusit a rict z pozice navstevnika, jestli jsem tam neco nepokakal (jsou tam tri testovaci soubory:)

[http://www.ls-guild.net/download.php]



Celkem upraveno 1×. Poslední úprava Lavo v 20.08.2006 03:22.

Re: Download - omezeni downloadu
Zaslán uživatelem/kou: Michalek (IP adresa zaznamenána)
Datum: 2006-08-20, 11:29

Vypadá to dobře :-) Jak je generovaý název souboru? Tipuji na nějaký ořezaný md5, nebo tak nějak; generuje to titž u souboru vždycky ten samý název ;-)

--
[ SAFUS.EU | OFFLINE | FOREVER ]

Re: Download - omezeni downloadu
Zaslán uživatelem/kou: Lavo (IP adresa zaznamenána)
Datum: 2006-08-20, 15:21

Tak, oriznute md5, hlavne, ze se neda vycist cesta ze stahovani.

Re: Download - omezeni downloadu
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2006-08-27, 02:29

Len jeden postreh:
header('Content-Disposition: attachment; filename="Prihláška-za-člena.html"'); - nefunguje
header('Content-Disposition: attachment; filename="Prihlaska-za-clena.html"'); - funguje OK

Ak je v názve diakritika, server posiela miesto názvu Prihláška-za-člena.html, názov php súboru. Nechápem prečo alebo ako to fixnúť, no každopádne odstránenie diakritiky zaberá. (Apache/2.2.2 (Win32) DAV/2 mod_ssl/2.2.2 OpenSSL/0.9.8b mod_autoindex_color PHP/5.1.4 Server at localhost Port 80)

Re: Download - omezeni downloadu
Zaslán uživatelem/kou: MirekS (IP adresa zaznamenána)
Datum: 2006-08-29, 14:48

me tedy to prejmenovani souboru prijde zbytecne (akorat to zhorsi prehlednost pri administraci toho downloadu), podle me staci, kdyz neni videt ta cesta, pak se ten primej link bude hledat spatne (pokud to tedy neni ulozeno v adresari download, ale v nejakem "dobre" pojmenovanem, pripadne trochu vice zanorenem), pripadne pokud nekdo ma vlastni server, tak to muze byt v adresari, ktery z webu neni vubec pristupny, takze je nemozne, dat primy link

Re: Download - omezeni downloadu
Zaslán uživatelem/kou: Michalek (IP adresa zaznamenána)
Datum: 2006-08-29, 14:53

Zajímavý nápad, velice zajímavý. Hodit do toho adresáře htaccess s deny a jen načítat obsah přes php. Díky.

--
[ SAFUS.EU | OFFLINE | FOREVER ]

Re: Download - omezeni downloadu
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2006-08-29, 16:13

:) áno v jednoduchosti je krása. Ono vlastne stačí nepoužiť presmerovanie na furl
header("Location: ".$pole_soubor["furl"]);
a zmeniť storage na niečo neuhádnuteľné.

Re: Download - omezeni downloadu
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2006-09-08, 19:56

@phprs_sql_query("update ".$GLOBALS["rspredpona"]."download set pocitadlo=(pocitadlo+1) where idd='".$GLOBALS["soubor"]."'",$GLOBALS["dbspojeni"]); // zapocitani stazeni
$pole_soubor=phprs_sql_fetch_assoc($dotazsoubor);
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"".$pole_soubor["fjmeno"]."\"");
//header("Location: ".$pole_soubor["furl"]); // presmerovani stranky
readfile($pole_soubor["furl"]);
exit();

To je celá veda, pri zmene v nastavení storage adresára to stačí.

EDIT
PS: MirekS chlape, prečo sem nepíšeš častejšie ;)



Celkem upraveno 1×. Poslední úprava pa3k v 08.09.2006 20:00.



Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.