Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: System downloadu - 4 pytania
Forum PHP.pl > Forum > Przedszkole
Bojakki
Chce napisac prosty system downloadu dla mojej stronki, jako, ze nie mam w tym zadnego doswiadczenia chialem sie zapytac o pare rzeczy.

1. Sciagac plik bedzie mogla tylko osoba zalogowana, to jest akurat prosto zrobic, wystarczy ukryc link dla osoby niezalogowanej. Co jednak zorbic gdy osoba zalogowana poda link osobie niezalogowanej? Przy okazji zabezpieczyloby to chyba pliki przed hotlinkowaniem
2. czy logowanie to skuteczny sposob na zabezpiecenie sie przed indeksowaniem plikow przez wyszukiwarki?
3. W odleglejszej przyszlosci bede chial zrobic by system byl czesciowo platny, powiedzmy, ze bedzie abonament na meisaic i taka osoba bedzie miala dzieki temu wiekszy wybor plikow czy cos takiego. Jest gdzies moze o tym cos w sieci? tzn. osoba wysyla SMSa, dostaje kod, wpisuje go i juz ma abonament. To tzreba jakies umowy z operatorami czy co? Jak system rozpozna czy to dorby kod itd? Chodiz mi na razie o ogolne informacje na ten temat.
4. Czy powinienem pamietac o czyms istotnym piszac ten caly system? Jakie bledy najczesciej robia niedoswiadczone osoby piszac takie systemy downloadu?


Z gory dziekuje za pomoc!
ActivePlayer
ad 1. linki wygladają tak:

Kod
http://www.tw.str.pl/pobierz.php?id=5


w pobierz.php sprawdzasz czy user jest zalogowany, jesli tak to wysylasz do niego content... uzywasz header() i getfilecontents()

ad 2. tak

ad 3. ja korzystalem z allpay.pl ... tam przeczytasz więcej na ten temat...
Bojakki
Cytat(ActivePlayer @ 2005-12-06 08:23:42)
ad 1. linki wygladają tak:

Kod
http://www.tw.str.pl/pobierz.php?id=5


w pobierz.php sprawdzasz czy user jest zalogowany, jesli tak to wysylasz do niego content... uzywasz header() i getfilecontents()

A czy to bedzie umozliwialo sciaganie plikow "wspomagaczami" i wznownie sciagania plikow po przerwaniu?
ActivePlayer
jesli user sie zaloguje - tak.
shpyo
Ooo dobrze że jest ten temat.
To ja mam takie pytanie: Jak zabezpieczyć skrypt przed "cfaniakami"? Teraz każda przeglądarka czy też wspomagacz ściągania podaje bezwzględny adres do pliku... Jak zrobić aby po wpisaniu adresu do pliku, wywaliło odpowiedni komunikat?
FiDO
np. .htaccess albo pliki poza katalogiem public_html (odczytywane tylko przez skrypty)
xemi
hej, mnie ten temat tez interesuje,
ja chce podobne zabezpieczenie przed sciaganiem plikow zrobic, zrobilem to przez header(), ale wyskakuje mi "Cannot modify header information - headers already sent by " hmm co jest nie tak??snitch.gif
nospor
czy ja kiedys doczekam sie czasow, ze uzyjecie wyszukiwarki?
http://forum.php.pl/index.php?act=Search&C...already+sent+by

topic na topicu o tym problemie
strife
Cytat(xemi @ 2005-12-09 18:48:04)
ale wyskakuje mi "Cannot modify header information - headers already sent by " hmm co jest nie tak??snitch.gif

Za takie teksty powinny już bany lecieć! tongue.gif Wpisz sobie w wyszukiwarce headers already sent to się dowiesz czemu...

@nospor - Znowu byłeś szybszy... tongue.gif
xemi
dzieki, z tym sobie poradzilem, ale teraz mam tak:
w pliku index.html jest formularz, w pliku download.php jest spradzanie czy zostal on wypelniony (bo ja potrzebuje tylko takie cos zeby przed porbaniem pliku formularz sie wypelnilo), jesli jest wszystko ok, to jest ponizszy kod:
  1. <?php
  2.  
  3. $urldir = $_GET['download']; // directory of file to download 
  4. $filename = $_GET['test.zip']; // filename only 
  5.  
  6. $downloadurl = $urldir . $filename; 
  7. $size = filesize($downloadurl); 
  8.  
  9. header("Pragma: public"); 
  10. header("Expires: 0"); 
  11. header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
  12. header("Cache-Control: private",false); 
  13. header("Content-Type: application/octet-stream"); 
  14. header("Content-Disposition: attachment; filename="".$filename."";"); 
  15. header("Content-Transfer-Encoding: binary"); 
  16. header("Content-Length: ".$size); 
  17. ?>

no i zaczyna mi sciagac plik, tylko nie ten co chce, a plik... "download.php"
i teraz juz wogole nie wiem co jest nie tak:/ ten kod dostalem z innego forum
nospor
no bo nie podales pliku co ma wyswietlic (pobrac). brakuje ci jeszcze na koncu
  1. <?php
  2. readfile($plikdopobrania);
  3. ?>
xemi
Cytat(nospor @ 2005-12-09 17:11:23)
no bo nie podales pliku co ma wyswietlic (pobrac). brakuje ci jeszcze na koncu
  1. <?php
  2. readfile($plikdopobrania);
  3. ?>

hmmm mam teraz tak:
  1. <?php
  2. $urldir = $_GET['pliki']; // directory of file to download 
  3. $filename = $_GET['test.zip']; // filename only 
  4.  
  5. $downloadurl = $urldir . $filename; 
  6. $size = filesize($downloadurl); 
  7.  
  8. header("Pragma: public"); 
  9. header("Expires: 0"); 
  10. header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
  11. header("Cache-Control: private",false); 
  12. header("Content-Type: application/octet-stream"); 
  13. header("Content-Disposition: attachment; filename="".$filename."";"); 
  14. header("Content-Transfer-Encoding: binary"); 
  15. header("Content-Length: ".$size); 
  16.  
  17. readfile($downloadurl);
  18. ?>

i nadal jest to samo, nie sciaga tego pliku co chce:/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.