Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: połączenie ftp w sesji
Forum PHP.pl > Forum > PHP
sokot
Witam,

Jak w temacie.
Jeśli uzyskam połączenie z serwerem ftp to czy mogę je wrzucić do sesji aby się nie musieć łączyć za karzdym razem gdy przeładuję strone.
Jesli jak to co nalerzy dokładnie wrzucić do tej sesji ?
Czymś takim uzyskuje dostęp:

Kod
$isLogged = @ftp_login($this->_connection, $username, $password);


$isLogged jest zwrotką z serwera że dostęp jest, ale co dalej jak utrzymać to połączenie bez konieczności łączenia za każdym razem gdy się przeładuje strona?
Jak to sie robi ?

Pozdrawiam serdecznie,
Marcin
modern-web
Podejrzewam, że to niewykonalne. Co prawda może istnieje określenie czasu połączenia ale nie znalazłem niczego co by do tego nawiązywało. Z użyciem sesji tym bardziej tego nie wykonasz. Hm, wydaje mi się, że taka jest po prostu konfiguracja php, że zrywa połączenie z ftp (podobnie jak z bazą danych) wraz z zakończeniem połączenia (końcem wykonywania skryptu), ale możesz próbować. A do czego Ci to potrzebne? Można poszukać alternatywnego rozwiązania smile.gif

Pozdrawiam.
sokot
Chce dodać klienta ftpa do mojego cmsa. Wiem że można coś takiego stworzyć. Zastanawiam się tylko jak to ugryźć. Nie wiem jak to robią inni. Może przezucić to wszystko na jakieś JQuery i ajaxem operować ?
Będę wdzięczny za sugestie.

Pozdrawiam,
M
modern-web
Ciekawy temat, nigdy się nad tym nie zastanawiałem - jak utrzymać połączenie FTP, dlatego wnioskuję, że działa to na zasadzie podobnej co połączenie z bazą danych. Zauważ, że w obu przypadkach w grę wchodzi działanie na odrębnych portach, nawiązuje się dodatkowo jakieś połączenie... Hm, w dokumentacji nie ma mowy o podtrzymaniu sesji także ja bym spojrzał na inne oprogramowanie i przeanalizował tamtejszy sposób działania albo kompletnie sobie darował i robił tak jak leci - może wydaje się to mało optymalne ale na dobrą sprawę, są to niewielkie różnice jak mniemam (może w tym momencie sobie zaprzeczyłem, bo jak można zmierzyć coś co nie istnieje... no ale wiadomo o co chodzi). Nawiasem - widziałeś gdzieś system działający na podobnych zasadach, oferujący klienta ftp wraz z podtrzymaniem sesji? Skąd wiesz, że nie jest to za każdym razem odświeżane połączenie?
tehaha
Czyli krótko mówiąc chcesz stworzyć menedżer plików. Nie potrzebujesz tutaj podtrzymywania połączenia, jeżeli masz jakąś operację do wykonania to nawiązujesz połączenie, robisz co trzeba i się rozłączasz, tak jak z mysql. Aczkolwiek ja bym tutaj zadał pytanie, jak bardzo rozbudowanego narzędzia potrzebujesz i czy masz jakieś niestandardowe potrzeby? Bo jeżeli chodzi tylko o taki dodatkowy moduł w CMS to możesz skorzystać z gotowego rozwiązania.

Liniki:
http://www.phpwebftp.com/
http://elfinder.org/
modern-web
Dokładnie! Tak jak prawi kolega wyżej, operacje odbywają się zazwyczaj w 3 fazach - połącz->wykonaj->rozłącz, więc i podtrzymywanie połączenia jest bez sensu. Cóż, kwestia optymalizacji pozostaje do indywidualnego rozpatrzenia, bo niby im mniej takich połączeń tym lepiej, a tworząc taki projekt na większą skalę prędzej czy później trzeba będzie poruszyć ten temat.
sokot
Dzięki za cenne wskazówki.

Na logikę wydawało mi się że podtrzymanie połączenia powinno być ale może macie w sumie rację.
Po zalogowaniu po prostu trza by wrzucić do sesji tylko dane dostępowe aby później urzytkownik nie zauwarzał że ciągle się łączy wink.gif.
Ale i tak uwarzam że szkoda traconego czasu na ponowne połączenia przy chociażby przy chodzeniu po katalogach sad.gif

Pozdrawiam serdecznie,
Marcin
nospor
Cytat
Po zalogowaniu po prostu trza by wrzucić do sesji tylko dane dostępowe aby później urzytkownik nie zauwarzał że ciągle się łączy
Dla użytkownika to żadna różnica czy dane dostępowe czytasz z sesji czy nie. On nie zauważy różnicy tylko dlatego że jakieś dane wrzucisz do sesji zamiast zczytać je z innej konfiguracji.
sokot
Na niby racja ale to po prostu ładne rozwiązanie biorąc pod uwagę że użytkownik może podać za pierwszym razem złe dane, więc do sesji (lub gdzie indziej) wrzucamy tylko te po których połączenie zostało uzyskane.

Pozdrawiam,
M
modern-web
To da się obejść, kombinuj smile.gif W razie czego służymy pomocą.
sokot
Hej,

Co masz na mysli że mówiac to da się obejść ?
Można jakoś zapamiętać identyfikator połączenia z ftp ?
Ja myślałem trochęo serializacji ale odpuściłem.
Już w sumie odpuściłem wogóle sprawę ale jak się da to z chęcią bym to zrobił.

Odpisz proszę.

Pozdrawiam,
Marcin
zegarek84
to zależy, jak bardzo rozbudowaną aplikację wykonujesz, ile czasu tracisz na te połączenia i jak często wykonujesz operacje na FTP i to tym samym koncie, tzn. tym samym połączeniu które musisz otwierać i zamykać... można podtrzymać połączenie z dowolną aplikacją sieciową bądź komunikację z demonem, jednak PHP jest "skonstruowane" na pytanie - odpowiedź, wszystko się kończy... a technika jaką Ci wskażę jest typowa dla aplikacji sieciowych w innych językach programowania i możliwa do uzyskania bez problemu w PHP (musisz sobie obmyśleć komunikację ze swoim demonem...)
Przekazywanie obiektu COM, Przekazywanie obiektu COM między wywołaniami strony - tu był podobny problem, zarzuciłem tam prawie tylko hasło "socket'y"

ps. jeśli byś drążył temat socketów i potrzebował w miarę przystępnego przykładu (a moim zdaniem w trybie nie blokującym ^^) to tu masz w miarę to opisane (na pewno o asynchronicznym przyjmowaniu połączeń i wiadomości, nie pamiętam czy jest tam wspomniane o nieblokowanym odczycie i zapisie)
Guru - Multiplexing

ps. jeśli skrypt wywołasz z poziomu konsoli (z wiersza poleceń) to nie masz ograniczenia czasowego na jego wykonanie...
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.