![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 27.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
(IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif) Siema all (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif)
Mam server ftp, chcialbym tam wzucic kilka gier itp. Pierwszym moim ruszem bylo zrobienie okna ktore sie "ukrywa" poprzez meta wlacza sciaganie i po 10 sec samo sie wylacza.. Ale nie zawsze to sciaganie sie zdazylo wlaczyc a juz www sie zamykalo, dlatego pomyslalem ze zrobie to w php.. Oto torche zrodla:
I co teraz musze zrobic zeby pobieranie pliku wlaczylo sie u uzytkownika? jest w ogole taka mozliwosc ? bo ftp_get pobiera mi plik na server z www ;/ Z gory THx za pomoc;) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
php działa po stronie serwera, a nie klienta. Ostatecznie możesz przekierować klienta przy pomocy nagłówków, ale jeżeli chcesz ich użyć, to raczej nie napiszesz użytkownikowi, czy się dostał czy nie. Nagłówki muszą zostać wysłane przed jakimkolwiek innym wyjściem.
Kod z manuala.
Funkcje ftp_ służą, do połączenia serwera, na którym stoi php z obiektem docelowym, który podajesz jako argument. W twoim przypadku nie zadziałają tak jak zamierzałeś. Ten post edytował Ludvik 18.06.2004, 16:31:15 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 27.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
No to w jaki sposob mozna zrobic bezpieczny download?
bo Header przepieruje awiec otworzy w moim przypadku: ftp://login:pass@ip/plik i wszystko widac w naglowku... a mi chodzi o zabezpieczenie, zeby sciaganie pliku sie wlaczylo, ale zeby nikt nie wiedzial zkad... |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie zrobisz tego tak prosto, bo kiedy klient ma ściągać przez przeglądarke, to musi dostać komplet danych, w tym linka, login i hasło. Tutaj jest największy problem. Nie wiem jak by to miało wyglądać, ale jeżeli ftp i http są na osobnych maszynach, to chyba ciężko będzie. Może, ktoś z większym doświadczeniem się wypowie?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 3.07.2003 Skąd: Szczecin->niebuszewo->*(next to window) Ostrzeżenie: (0%) ![]() ![]() |
i co w koncu jak rzwiazales problem? bo przydazyl mi sie podobny
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
dac odpowiedni header() {spis mime-type macie przyklejony na subforum 'php'} polaczyc sie z ftp serwerem pobrac jakos ten plik do zawartosci jednej zmiennej a nastepnie wyslac go userowi przez zwykle echo.
cos analiogicznego do tworzenia obrazkow w php. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 27.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
A ja bym to zrobił tak...
Powinno działać.. już tego dokładnie nie pamiętam. Wystarczy to ulepszyć i będzie ok (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 3.07.2003 Skąd: Szczecin->niebuszewo->*(next to window) Ostrzeżenie: (0%) ![]() ![]() |
Cytat(slepy @ 2004-12-01 14:41:56) A ja bym to zrobił tak...
Powinno działać.. już tego dokładnie nie pamiętam. Wystarczy to ulepszyć i będzie ok (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam i user widzi twoje haslo troche mija sie to z celem |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 1 Dołączył: 3.04.2004 Skąd: Trójmiasto (Gdańsk) Ostrzeżenie: (0%) ![]() ![]() |
Cytat(squid @ 2004-12-01 18:28:11) i user widzi twoje haslo troche mija sie to z celem User nie zobaczy hasła, jedynie nazwę pliku który udostępnia to ściąganie. ja bym zrobił mniej więcej tak jak slepy tylko bez (chyba) niepotrzebnych dodatków i tego html (wygenerowany we frontpage, błeee...), który i tak się nie wyświetli bo jest po exit() Wpisujesz pliki jakie masz do tablicy $pliki, po czym jeśli chcesz udostępnić jakiś plik dajesz link w postaci download.php?plik=plik1
Ten post edytował rogrog 1.12.2004, 18:51:49 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 62 Pomógł: 0 Dołączył: 25.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Odgrzebuje temat bo przejrzalem 27 stron postow na forum i nie znalazlem odpowiedzi na swoj problem, a mysle ze temat jest wart rozwiazania bo jak widac nie jestem jedynym ktory nie moze sobie z tym poradzic:) Dobra do rzeczy.
Powyzsze skrypty sa jak najbardziej wporzadku ale moga sluzyc tylko i wylacznie do download'u poprzez http. Po wpisaniu protokolu "ftp://" w adresie URL pliku funkcje readfile,file_put_contents etc. spowoduja tylko wyslanie pliku przez protokol ftp do server'a http a uzytkownik otrzyma go przez http. Znalazlem rozwiazanie w postaci header("Location") ale wowczas klient dostaje pelen paiet danych czyli login, haslo,host oraz katalog w ktorym znajduje sie plik. Jesli ograniczyc by sie tylko do IE poniekad problem rozwiazany bo ta przegladarka nie pokazuje owych danych jesli wywolamy download w powyzszy sposob, ale jest zenujacym poprostu:) ograniczac sie do najgorszego produktu na rynku;) Kolejny pomysl jaki przyszedl mi do glowy to stworzyc tymczasowy katalog na serverze ftp do ktorego bedziemy przegywac pliki z ktalogu macierzystego zgodnie z rzadaniem uzytkownikow zakodowane powiedzmy uzywajac md5 a po sciagnieciu usuwac. Ostatnie rozwiazanie pewnie najlepsze ale i najtrudniejsze:) Napisac program w C ktory wywolany z php'a wysle plik uzytkownikowi i tutaj czekam na propozycje:) Co o tym myslicie? Moze ktos cos takiego juz robil wie jaksie do tego zabrac badz poda chociarz jakis link? Jakich bibliotek i funkcji uzywac jesli zdecydowalbym sie na napisanie czegos w C? Gdaq |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 3.07.2003 Skąd: Szczecin->niebuszewo->*(next to window) Ostrzeżenie: (0%) ![]() ![]() |
Cytat(gdaq @ 2005-02-16 23:53:04) Odgrzebuje temat bo przejrzalem 27 stron postow na forum i nie znalazlem odpowiedzi na swoj problem, a mysle ze temat jest wart rozwiazania bo jak widac nie jestem jedynym ktory nie moze sobie z tym poradzic:) Dobra do rzeczy. Powyzsze skrypty sa jak najbardziej wporzadku ale moga sluzyc tylko i wylacznie do download'u poprzez http. Po wpisaniu protokolu "ftp://" w adresie URL pliku funkcje readfile,file_put_contents etc. spowoduja tylko wyslanie pliku przez protokol ftp do server'a http a uzytkownik otrzyma go przez http. Znalazlem rozwiazanie w postaci header("Location") ale wowczas klient dostaje pelen paiet danych czyli login, haslo,host oraz katalog w ktorym znajduje sie plik. Jesli ograniczyc by sie tylko do IE poniekad problem rozwiazany bo ta przegladarka nie pokazuje owych danych jesli wywolamy download w powyzszy sposob, ale jest zenujacym poprostu:) ograniczac sie do najgorszego produktu na rynku;) Kolejny pomysl jaki przyszedl mi do glowy to stworzyc tymczasowy katalog na serverze ftp do ktorego bedziemy przegywac pliki z ktalogu macierzystego zgodnie z rzadaniem uzytkownikow zakodowane powiedzmy uzywajac md5 a po sciagnieciu usuwac. Ostatnie rozwiazanie pewnie najlepsze ale i najtrudniejsze:) Napisac program w C ktory wywolany z php'a wysle plik uzytkownikowi i tutaj czekam na propozycje:) Co o tym myslicie? Moze ktos cos takiego juz robil wie jaksie do tego zabrac badz poda chociarz jakis link? Jakich bibliotek i funkcji uzywac jesli zdecydowalbym sie na napisanie czegos w C? Gdaq do kopiowania pliku nie potrzebujesz C, mozesz uzyc php i przekopiowac plik z katalogu ukrytego do publicznego ftp i podac pprostu userowi linka, jak go kliknie to sam menadzer downloadu mu sie uruchomi. Nie rozumiem do czego chcesz uzyc md5 ale chyba niezgodnie z przeznaczeniem bo md5 nie jest f-cja kodujaca ale jednokierunkowa f-cja skrutu ktora z dowolnej tresci/pliku tworzy w maire unikalny ciag 128 bitow ale dla tej samej wiadomosci zawsze ten sam co jest uzywane do testow integralnosci. mozesz sprobowac dodawac nowe hasla dostepu do ftp ktore daja dostep tylko do okreslonego katalogu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 62 Pomógł: 0 Dołączył: 25.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
C zamierzalem uzyc do jakby wlasnego server'a ftp ktory bedzie laczyc sie na wezwanie php'a z prawdziwym ftp'em. Podawal link do pliku ale defakto sciagal go przez mojego ftp'a ktoy dzialalby na jakims innym porcie i maskowal adres ftp w ten sposob.
MD5 zapisuje login do tablicy charow mieszam wszystkie znaki przypadkowo i generuje z tego md5 dostaje unikatowa nazwe. Tworze katalog w katalogu tmp o tej wlasnei nazwie. Wykluczam wlasciwie prawodpodobienstwo przypadkowego odnalezienia katalgou przez uzytkownika choc watpie zeby ktos chcial probowac jak zobaczy nazwe ftp://download/#@krzaczki@#/file.exe katalogowi download nadajemy chmod 771 a #@krzaczki@# chmod 775 co daje nam brak mozliwosci przegladania katalogow znajdujach sie w ktalagou download Dodawanie kont do ftp'a jest chyba troszke malo wydajne i niebezpieczen bo w pewnym momencie bedziemy mieli np. 10 tys. kont na ftpie z czego uzywanych bedzie tylko 1 tys. Nie chce mi sie wierzyc ze to jest takie skaplikowane do wykonania nie da sie tego jakims porostym sposobem rozwiazac. Powracajajc jeszcze do funckji readfile etc. mam taki skrypcik:
Tylko ze sciaga wtedy np 255 bajtow np. z 8 MB. Czyli laczy sie z serwerem po przejrzeniu logow wnioskuje ze wynika to z tego iz jesli wywolam readfile lacze sie z serwerem przy uzyciu active mode a nie pasive moze o to chodzi. Ponizej zapis logow z servwera dla udanego download'u przy uzyciu header("Location") i nie udanego przy uzyciu readfile() Kod 2005-02-16 09:27:06#majkel#00:00:13#8887179#0#8887179#1#0#634798,500#8#0 (000007) 2005-02-16 09:27:06 - (not logged in) (192.168.0.218) > connected to ip : 192.168.0.228 (000007) 2005-02-16 09:27:06 - (not logged in) (192.168.0.218) > sending welcome message. (000007) 2005-02-16 09:27:06 - (not logged in) (192.168.0.218) > 220 BulletProof FTP Server ready ... (000007) 2005-02-16 09:27:06 - (not logged in) (192.168.0.218) > USER anonymous (000007) 2005-02-16 09:27:06 - (not logged in) (192.168.0.218) > 331 Password required for anonymous. (000007) 2005-02-16 09:27:06 - (not logged in) (192.168.0.218) > PASS ******** (000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > logged in. (000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > 230 User majkel logged in. (000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > TYPE I (000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > 200 Type set to I. (000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > PASV (000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > 227 Entering Passive Mode (192,168,0,228,102,45). (000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > SIZE /pcmark2002.exe (000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > 213 8887179 (000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > RETR /pcmark2002.exe (000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > asked to download 'C:\apache\htdocs\pcmark2002.exe' --> Access allowed. (000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > 150 Data connection accepted from 192.168.0.218:1186; transfer starting for pcmark2002.exe (8887179 bytes). (000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > started downloading 'C:\apache\htdocs\pcmark2002.exe'. (000007) 2005-02-16 09:27:13 - majkel (192.168.0.218) > finished downloading 'C:\apache\htdocs\pcmark2002.exe' - (00:00:08 - 8678,886 KB - 1084,861 KBytes/s) (000007) 2005-02-16 09:27:13 - majkel (192.168.0.218) > 226 Transfer ok (000007) 2005-02-16 09:27:19 - majkel (192.168.0.218) > disconnected. (00:00:13) 2005-02-17 14:03:08#majkel#00:00:00#0#0#0#0#0#0,000#0#0 (000006) 2005-02-17 14:03:08 - (not logged in) (192.168.0.228) > connected to ip : 192.168.0.228 (000006) 2005-02-17 14:03:08 - (not logged in) (192.168.0.228) > sending welcome message. (000006) 2005-02-17 14:03:08 - (not logged in) (192.168.0.228) > 220 BulletProof FTP Server ready ... (000006) 2005-02-17 14:03:08 - (not logged in) (192.168.0.228) > USER anonymous (000006) 2005-02-17 14:03:08 - (not logged in) (192.168.0.228) > 331 Password required for anonymous. (000006) 2005-02-17 14:03:08 - (not logged in) (192.168.0.228) > PASS ******** (000006) 2005-02-17 14:03:08 - majkel (192.168.0.228) > logged in. (000006) 2005-02-17 14:03:08 - majkel (192.168.0.228) > 230 User majkel logged in. (000006) 2005-02-17 14:03:08 - majkel (192.168.0.228) > TYPE I (000006) 2005-02-17 14:03:08 - majkel (192.168.0.228) > 200 Type set to I. (000006) 2005-02-17 14:03:08 - majkel (192.168.0.228) > SIZE /ftp/pcmark2002.exe (000006) 2005-02-17 14:03:08 - majkel (192.168.0.228) > 550 No such file or directory. (000006) 2005-02-17 14:03:08 - majkel (192.168.0.228) > disconnected. (00:00:00) Nie wiem wsumie co jest zapisywane na dysku bo z tego co powyzej wynika ze nic nie zostalo sciagniety w drugim przypadku z server'a Czekam na jakies sugestie i propozycje:) Gdaq Ten post edytował gdaq 17.02.2005, 14:18:11 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 21:00 |