Skocz do zawartości

Zablokowane Jednorazowy link


Solmis

Rekomendowane odpowiedzi

Więc sytuacja jest taka:

 

Mam wykupiony serwer. Stoi se gdzieś w Krakowie.

Ja wstawiam plik na serwerze.

 

I tu pytania:

 

- Czy da się zrobić, by po jednym pobraniu nie dało się go pobrać 2. raz? Jeśli się da, to jak?

- Jak usunąć plik po jednym całkowitym pobraniu? (licząc transfer danych czy cuś)?

 

Chodzi mi o skrypt(y). ;o

 

I belive in you! ;[

Odnośnik do komentarza
Udostępnij na innych stronach

a nie prosciej napisac skrypt download.php i w bazie rekord ilosci sciagniec i w skrypcie najpierw sprawdzanie czy ilosc pobran jest mniejsza niz 1 wtedy pobran+=1 i zapisanie do rekordu, nastepnie przeniesienie na dany link z konkretnym plikiem? choc w sumie dalo by sie to obejsc na upartego

Odnośnik do komentarza
Udostępnij na innych stronach

zapewne funkcja unlink() pomoze :)

Odnośnik do komentarza
Udostępnij na innych stronach

unink() kasuje plik, ale ten plik ma zostać skasowany dopiero, kiedy się pobierze plik :P

 

Zawsze można to obejść :P

1. Wchodzisz na stronę, klikasz [Pobierz plik].

2. Plik zaczyna się pobierać.

3. Po ściągnięciu archiwum rozpakowujesz go.

4. Powstają dwa pliki: file.zip (zaszyfrowany) i README.txt

5. W pliku README.txt masz link do "specjalnej" strony.

6. Wchodzisz na ten link.

7. Klikasz [Pokaż hasło do pliku]

8. Po kliknięciu na [Pokaż hasło do pliku] plik zostaje skasowany, a użytkownik otrzymuje hasło.

 

Na pewno się da to zrobić "normalnie", no ale, wszystko da się obejść :)

 

Edit: W sumie...

Robimy skrypt PHP który zwraca nam plik (plik, nie przekierowanie do pliku) jednocześnie odhaczając w jakimś pliku datę pobrania tego pliku. Autor serwera stosunkowo często wchodzi na skrypt check.php, który sprawdza, czy od jakiegoś pobranego pliku nie upłynęło więcej niż powiedzmy 5 godzin - jeśli tak, kasuje go.

Oczywiście, jeśli w pliku znajduje się jakakolwiek data nie można go pobierać drugi raz.

 

To takie pół-automatyczne kasowanie plików :P

Odnośnik do komentarza
Udostępnij na innych stronach

Czyli jeśli dobrze rozumiem, to:

 

- Normalne pobieranie pliku (zahasłowane archiwum), a "jednorazowy" link do pliku txt z hasłem do niego

 

lub

 

- Kombinacja z rekordami, unlink() itd? ;p

 

 

Jeśli tak, to raczej wybiorę 2. sposób. Taki bezpieczniejszy. Z tego co wiem nie jest trudno dostać się do zahasłowanego archiwum. ;P

 

 

EDIT:

 

@Dawidds:

 

Też może być... ;o

Odnośnik do komentarza
Udostępnij na innych stronach

Hmmm... a może coś takiego...

 

header('Content-Disposition: attachment; filename=plik.zip');
header('Content-Type: application/x-unknown');

$file = fopen("plik.zip", "rb")
echo(fread($file, filesize('plik.zip')));
fclose($file);

unlink("plik.zip")

 

Nie będzie można wznawiać pobierania, ale powinno działać :)

Odnośnik do komentarza
Udostępnij na innych stronach

@up:

 

$file = fopen("plik.zip", "rb")

 

czy

 

$file = fopen("plik.zip", "r");

 

?

 

Hm, ale jakby ktoś pobrał bezpośrednio plik....

 

EDIT:

 

Dawidds, przetestowałem twój kod.

Działa, tylko nie czeka aż plik się pobierze... :/

 

EDIT 2:

 

Hm. A może w pliku download.php pobierać będzie adres IP i prowadzić do download2.php, gdzie:

 

- usuwany będzie plik download.php

- pobieranie będzie tylko dla osoby o danym IP

- pobierane dane o stanie pobierania (kiedy się ukończy, bądź zostanie przerwane plik będzie usunięty)

Odnośnik do komentarza
Udostępnij na innych stronach

Po 1. to zrobiłem literówkę - powinno być "application" a nie "aplication" :P

 

Po 2. Że jak nie czeka :P ?

Że zaczyna się pobieranie, i od razu plik zostaje usunięty?

 

Po 3. Nie wiem, co Ci chodzi z Edit2 :P

 

Jeśli nie zależy Ci na natychmiastowym kasowaniu tego pliku (w sensie że sam go sobie usuniesz, jak zobaczysz, że ten plik został już raz pobrany, a od momentu rozpoczęcia pobierania minęły powiedzmy 2h), to:

if(plik test.txt NIE istnieje)
{
rozpocznij pobieranie
utworz plik test.txt zapisujac do niego aktualna date
}

 

Mimo, że plik nie został skasowany, to nie da się go pobrać po raz kolejny (a, i w htacces'ie zabezpiecz ten plik :P)

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...