Solmis Opublikowano 29 Listopada 2008 Udostępnij Opublikowano 29 Listopada 2008 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 Więcej opcji udostępniania...
Piczer Opublikowano 29 Listopada 2008 Udostępnij Opublikowano 29 Listopada 2008 1. ciasteczka, ewentualnie ban linka na IP Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Solmis Opublikowano 29 Listopada 2008 Autor Udostępnij Opublikowano 29 Listopada 2008 @up: Ciasteczka odpadają. Ban zresztą też. Chodzi mi o to, by jak pobierze JEDNA osoba plik. To nikt inny nie może, o! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 29 Listopada 2008 Administratorzy Udostępnij Opublikowano 29 Listopada 2008 A duży ten plik ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Solmis Opublikowano 29 Listopada 2008 Autor Udostępnij Opublikowano 29 Listopada 2008 @gnysek: No, 300 MB prawie. A powiedz co ci po głowie chodzi... ;D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 29 Listopada 2008 Udostępnij Opublikowano 29 Listopada 2008 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 Więcej opcji udostępniania...
Solmis Opublikowano 29 Listopada 2008 Autor Udostępnij Opublikowano 29 Listopada 2008 @Psichix: Niby mogłoby być... ;] Tylko może by tak ktoś jeszcze wykombinował z usuwaniem? ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 29 Listopada 2008 Udostępnij Opublikowano 29 Listopada 2008 zapewne funkcja unlink() pomoze :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 29 Listopada 2008 Administratorzy Udostępnij Opublikowano 29 Listopada 2008 Tak, ale jak stwierdzić, czy ktoś pobrał już plik? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 29 Listopada 2008 Udostępnij Opublikowano 29 Listopada 2008 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 Więcej opcji udostępniania...
Solmis Opublikowano 29 Listopada 2008 Autor Udostępnij Opublikowano 29 Listopada 2008 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 Więcej opcji udostępniania...
Dawidds Opublikowano 29 Listopada 2008 Udostępnij Opublikowano 29 Listopada 2008 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 Więcej opcji udostępniania...
Solmis Opublikowano 29 Listopada 2008 Autor Udostępnij Opublikowano 29 Listopada 2008 @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 Więcej opcji udostępniania...
Dawidds Opublikowano 29 Listopada 2008 Udostępnij Opublikowano 29 Listopada 2008 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 Więcej opcji udostępniania...
Solmis Opublikowano 29 Listopada 2008 Autor Udostępnij Opublikowano 29 Listopada 2008 Ok, już wszystko (z pomocą Dawiddsa) zrobiłem, nawet lepiej niż chciałem... :] Zamykam. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi