Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z ftp_fget
kkpre
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 5
Dołączył: 19.03.2012

Ostrzeżenie: (0%)
-----


Witam, mam mały problem.
Napisałem sobie skrypt do pobierania pliku z innego serwera poprzez funkcje ftp.


  1. <?
  2. include('pobieranie-cfg.php');
  3.  
  4. $plik_lokalny = '../plik.txt';
  5. $uchwyt = fopen($plik_lokalny, 'w');
  6.  
  7. $sciezka ='/home/user/plik.txt';
  8.  
  9. $conn_id = @ftp_connect($host, 23);
  10. $log = ftp_login($conn_id, $user, $haslo);
  11. @ftp_pasv($conn_id, TRUE);
  12.  
  13. if($conn_id) echo "polaczono z serwerem {$host}:23 <br>"; else echo "nie polaczono z serwerem {$host}:23<br>";
  14. if($log) echo "zalogowano<br>"; else echo "nie zalogowano<br>";
  15.  
  16. $pb = ftp_fget($conn_id, $uchwyt, $sciezka, FTP_ASCII, 0);
  17.  
  18. if($pb) echo "pobrano plik {$sciezka}<br>"; else echo "nie pobrano pliku {$sciezka}<br>";
  19.  
  20.  
  21. ftp_close($conn_id);
  22.  
  23. ?>


Problem polega na tym że jak uruchomiłem to na localu (VertigoServ) to normalnie pobrało mi ten plik, a jak wrzuciłem skrypt na mój serwer www to zwraca taki wynik:

Kod
polaczono z serwerem xx.xx.xx.xx:23
zalogowano
nie pobrano pliku /home/user/plik.txt


Ścieżki są oczywiscie prawidłowe - pisałem że skrypt na localu działa.

zmienne $host,$user,$haslo są w tym pliku co includuje pobieranie-cfg.php

Hoster blokuje połączenia z niestandardowymi portami, a ja próbuje się łączyć z portem :23 - ale to też załatwiłem - zreszta widać komunikat że skrypt łączy się z serwerem i się loguje.

Prawa pliku na tym serwerze, z którego próbuje sciągnać też chyba nie mają zbytnio znaczenia bo przecież na localu to działa.

Czy ktoś ma jakiś pomysł co jeszcze może być nie tak?

Ten post edytował kkpre 22.03.2012, 15:28:17
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Czemu nie sprawdzacie wszystkiego pokolei? Przecież to jest szybsze niż latanie po forach....

$uchwyt = fopen($plik_lokalny, 'w');
sprawdź czy się wykonało poprawnie

Włącz wyswietlanie wszystkich błędów. TU masz napisane jak
Temat: Jak poprawnie zada pytanie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kkpre
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 5
Dołączył: 19.03.2012

Ostrzeżenie: (0%)
-----


Wiesz, zmienia się data modyfikacji pliku więc zakładam że pomyślnie otwiera ten plik. Plik istnieje i po "pobraniu" zapisuje się jako pusty.

  1. var_dump($uchwyt);


zwraca

Kod
resource(3) of type (stream)


a error_reporting zwraca

Kod
Warning: ftp_fget(): php_connect_nonb() failed: Operation now in progress (115) in /home/WWWUSER/domains/DOMENA.PL/public_html/pobieranie.php on line 16
Warning: ftp_fget(): Type set to A in /home/WWWUSER/domains/DOMENA.PL/public_html/pobieranie.php on line 16
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Wiesz, zmienia się data modyfikacji pliku więc zakładam że pomyślnie otwiera ten plik
Ty to widziałes ale my nie. A dla mnie to był pierwszy możliwy problem. Na przyszłosć od razu wszystko wyjaśniaj.

1) Spróbuj wywalić pasive mode.
2) Przed ftp_get spróbuj dać: ftp_exec($conn_id, '.')
3) ogólnie poszukaj w necie o tym problemie co ci pluje na ekran bo jest tego troche


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kkpre
post
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 5
Dołączył: 19.03.2012

Ostrzeżenie: (0%)
-----


Temat do zamknięcia. Szkoda mi było czasu na szukanie rozwiązania.
Na localu działało i na innym serwerze www też więc zmieniłem na serwerze z którego pobieram plik z powrotem na 21.
Wina musiała być po stronie hostera. Już działa.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 01:58