Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Połączenie z FTP za pomocą PHP
Forum PHP.pl > Forum > Przedszkole
grzegrzula
Witam. Mam problem uzyskaniem połączenia do servera FTP za pomocą PHP.
Aktualnie mam coś takiego:
  1.  
  2.  
  3. $ftp_user_name = 'login';
  4. $ftp_user_pass = 'haslo';
  5. $ftp_server = 'host';
  6. $conn_id = ftp_connect($ftp_server);
  7. // Logowanie
  8. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  9.  
  10. if($conn_id ==TRUE){
  11. echo 'Jest połączenie';
  12. }else{
  13. echo 'Nie ma połączenia';
  14. }
  15.  
  16.  
  17.  
  18.  
  19. ftp_close($conn_id);


Cały czas wyskakuje mi że nie ma połączenia.
Przetestowałem już dziesiątki podobnych kodów i efekt wciąż ten sam.
Nie wiem czy to coś zmienia, ale ustawiłem atrybuty na 777.

Pilnie prosze o pomoc!
abort
FTP może działać w dwóch trybach: pasywnym i aktywnym.
Aktywny FTP "nadaje" na porcie 21, dane idą na porcie 20.
W FTP pasywnym obie rzeczy idą na porcie 21.
Oczywiście o ile mówimy o standardowym porcie FTP - można go zmienić w ftp_connect.

P.S.
A firewall nie blokuje Ci tego czasem?
Czy to jest zwykłe FTP, czy FTP z SSL? Bo jak to drugie, to raczej przyda się ftp_ssl_connect...
grzegrzula
Port jest normalny. Bez problemu łączę się z nim po przez Total Comandera.
A mógłbyś dokładniej wytłumaczyć jak te porty mogłyby mi pomóc?
Jestem bardzo początkujący smile.gif

Jest to zwykłe FTP
abort
Pokaż dane, które masz zapisane w połączeniu w TC (oczywiście bez loginów i haseł; hosta też możesz skrócić do 'host'). Chodzi mi głównie o to, czy masz zaptaszkowane "SSL/TLS", "użyj trybu pasywnego" i "użyj firewall (serwer proxy)".
grzegrzula
żadna z tych opcji nie jest zaznaczona

podane mam tylko
Host
login
hasło i nic więcej
abort
Ej, ale dlaczego masz
  1. if($conn_id ==TRUE)

skoro wynik próby logowania zawiera zmienna $login_result? $conn_id to resource, choć też może zwracać FALSE (w przypadku niepowodzenia)...

Powinno to wyglądać chyba tak:
  1. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  2. if($login_result ==TRUE) { // a Ty tu testujesz $conn_id
  3. echo 'OK''
  4. } else }
  5. echo "Błąd połączenia";
  6. }
grzegrzula
ok dzięki za podpowiedź, wywaliło kilka błędów, ale je naprawiłem.
Ale nadal nie mogę się połączyć z serverem, i nie mam pojęcia w czym jest problem
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.