Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Zaloguj i ściągnij...:)
Forum PHP.pl > Forum > Przedszkole
patigo
Witam mam taki mały problem, wydawało by się że to łatwizna ale nagle zdałem sobie sprawę że nie wiem jak to zrobić. Chodzi o to że mam formularz w który wpisuje dane itd. i chciałbym aby poprawne wypełnienie formularza powodowało automatyczne ściąganie pliku ewentualnie mogę podać likn ale tak aby ścieżka nie była znana lub nie było dostrępu do tego pliku nie lugując się wcześniej.

innymi słowy jak uniemożliwić downland plików niezalogowanym użytkownikom??


Prosze o pomoc
Ociu
Sposób: Sprawdzasz czy istnieje cookie lub sesja, jeśli tak wtedy ściąga, jeśli nie to wywala tekst.

  1. <?php
  2. if(isset($_COOKIE['zalogowany']))
  3. {
  4. header(&#092;"location: http://serwer.pl/plik.zip\");
  5. } else {
  6. print 'nie jestes kurde zalogowany';
  7. }
  8. ?>
Seba
Teraz ja dodam swoje pytanie smile.gif

Jest to jakieś zabezpieczenie, aby nie zalogowany nie ściągnął pliku. Wiadomo że taki link bezpośredni do pliku potem można sobie skopiować. Tutaj moje pytanie o coś bardziej skomplikowanego z czego korzystają popularne serwisy chcąc się zabezpieczyć przed nie autoryzowanym ściąganiem. Jak dokonać, aby taki link bezpośredni był "zamaskowany" i skopiowanie go, a następnie ponowne użycie czy podanie innej osobie uniemożliwiało ponowne pobranie. Zastanawiałem się nad tym jakby można to wykonać, ale na nic nie wpadłem. Zapewne jest to dość skomplikowane, ale wykonalne smile.gif Dlatego czekam na wasze propozycje rozwiązania winksmiley.jpg

Pozdrawiam.
qqrq
To wcale nie aż tak skomplikowane... smile.gif Po prostu link musi prowadzić do skryptu, który (np. jak napisał kolega wyżej) sprawdza czy jesteś zalogowany, a potem przekieruje na właściwy plik (jeśli tak), lub na jakąś stronę z błędem (jak nie). A co do maskowania (żeby nie było od razu widać, że to skrypt) możesz użyć plików .htaccess. Dzięki nim możesz np. każdego ZIP-a plik.zip przekierować na np. skrypt.php?sprawdz=plik i już (poczytaj chociażby w manualu Apacha i ogónie w gugielu...). Pozdrawiam!
tsharek
Cytat(qqrq @ 11.09.2007, 10:29:31 ) *
To wcale nie aż tak skomplikowane... smile.gif Po prostu link musi prowadzić do skryptu, który (np. jak napisał kolega wyżej) sprawdza czy jesteś zalogowany, a potem przekieruje na właściwy plik (jeśli tak), lub na jakąś stronę z błędem (jak nie). A co do maskowania (żeby nie było od razu widać, że to skrypt) możesz użyć plików .htaccess. Dzięki nim możesz np. każdego ZIP-a plik.zip przekierować na np. skrypt.php?sprawdz=plik i już (poczytaj chociażby w manualu Apacha i ogónie w gugielu...). Pozdrawiam!


Właśnie chodzi o to że nie może być ŻADNEGO przekierowania. Plik weryfikuje czy jest zalogowany czy nie musi także wysyłać cały plik (wysłać nagłówek "Content-Type: application/force-download" i binarnie wysyłać dane odczytane z pliku. (Plik ten umieszczasz w katalogu do którego nie ma dostępu użytkownik z zewnątrz)
qqrq
tsharek => Nie wiem, czy ja po chińsku piszę? blinksmiley.gif O to właśnie mi chodziło.
tsharek
Cytat(qqrq @ 11.09.2007, 12:56:15 ) *
tsharek => Nie wiem, czy ja po chińsku piszę? blinksmiley.gif O to właśnie mi chodziło.


Chyba jednak po chińsku piszesz, bo napewno nie jest to co ja napisałem.
Cytat
... jesteś zalogowany, a potem przekieruje na właściwy plik ...

wyraźnie napisałem: ŻADNEGO przekierowania.... w tym to jest różnica, pozatym nakierowałem na metodę w jakim sposobem może wysłać headera z żadaniem ściągnięcia pliku, czego nie uczyniłeś. Następnym razem PLZ czytaj ze zrozumieniem
qqrq
OK, źle się wyraziłem (chodziło mi o przekierowanie kodu binarnego pliku w kod PHP, coś w ten deseń), a że header to chyba wiadomo... winksmiley.jpg
Seba
Wiem, już że trzeba to połączyć z konfigiem apache, pozostaje znaleźć odpowiednie dyrektywy, dzięki winksmiley.jpg.
Mam jeszcze jedną wątpliwość. Gdy ściągam sobie pliczek, widze ścieżke do niego w programie do ssania. Pytanie czy taki link również będzie odpowiednio chroniony przed nieuprawnionym ściąganiem? Rozwiązanie o którym pisaliście skutecznie to załatwi?

EDIT:
Dobra przeczytałem jeszcze raz i już wiem że będzie to załatwione skoro plik będzie w miejscu chronionym winksmiley.jpg
Jednak czy oby takie rozwiązanie że plik będzie musiałbyć czytany nie będzie zamulało serwera?
chiken
plik bedzie czytany wowczas jesli wpisze sie poprawny login i haslo, bo jesli weryfikacja sie nie powiedzie to przekierowujesz/wyswietlasz strone z bledem a nie plik smile.gif
Seba
Cytat(chiken @ 12.09.2007, 12:53:51 ) *
plik bedzie czytany wowczas jesli wpisze sie poprawny login i haslo, bo jesli weryfikacja sie nie powiedzie to przekierowujesz/wyswietlasz strone z bledem a nie plik smile.gif

Wiem, ale zakładając że dostęp do pliku po zalogowaniu może mieć wiele osób, do tego plik będzie ważył ponad 100 MB to czy nie zamuli serwera?
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.