Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Łączenie z ftp przez php
Forum PHP.pl > Forum > Przedszkole
Chelo
Witam wszystkich. Potrzebuję skrypt, który zaloguje się na serwer ftp, pokaże wszystkie foldery. Po wejściu na dany folder pokazują się pliki zawarte w folderach a pod spodem pokazują się linki np:
ftp://a:b@asdasd.nex.qsd/test/2.pgp
ftp://a:b@asdasd.nex.qsd/test/3.pgp
ftp://a:b@asdasd.nex.qsd/test/4.pgp

narazie posiadam początek, jednak już zaczynają się schody

  1. <?
  2. echo '<html><body bgcolor="#e2e2e2"><form method="POST">';
  3.  
  4. if(!$_GET && !$_POST) { if($_SESSION['vname3']) { unset($_SESSION['vname3']); } }
  5.  
  6. $ftp_serwer = "ddd";
  7. $ftp_nu = "ssss";
  8. $ftp_haslo = "b3ssc123";
  9.  
  10.  
  11.  
  12. if(!$_POST['oks'] && !$_POST['vname1']) {
  13.  
  14. if($_SESSION['vname3']) { unset($_SESSION['vname3']); }
  15.  
  16. $conn_id = ftp_connect($ftp_serwer);
  17. $login_result = ftp_login($conn_id, $ftp_nu, $ftp_haslo);
  18.  
  19.  
  20. $w1 = ftp_pwd($conn_id);
  21. $w2 = ftp_nlist($conn_id, ".");
  22. $w4 = implode("<br>", $w2);
  23. $w3 = ' Jestes w katalogu: ' . $w1 . ' ';
  24. echo '<b>Przejdz do katalogu:</b> <input type="text" name="vname1"> <input type="submit" name="oks" value="Przejdz"> <b>Katalog: </b>' . $vname3 . ' / <a href="index.php"><b>Strona glowna</b></a><br><br>';
  25.  
  26.  
  27. echo $w4;
  28.  
  29. if($_SESSION['vname3']) { unset($_SESSION['vname3']); }
  30. ftp_close($conn_id);
  31.  
  32. }
  33.  
  34. if($_POST['oks'] && $_POST['vname1']) {
  35.  
  36.  
  37. $conn_id = ftp_connect($ftp_serwer);
  38. $login_result = ftp_login($conn_id, $ftp_nu, $ftp_haslo);
  39.  
  40. if($_SESSION['vname3'] == NULL) {
  41. if($_SESSION['vname3']) { unset($_SESSION['vname3']); }
  42. $vname1 = $_POST['vname1'];
  43. $_SESSION['vname3'] = $vname1;
  44. $vname3 = $_SESSION['vname3'];
  45. $vname2 = $vname3;
  46. }
  47.  
  48. if($_SESSION['vname3'] !== NULL && $_SESSION['vname3'] !== $_POST['vname1']) {
  49.  
  50. $vname0 = $_SESSION['vname3'];
  51. $vname1 = $_POST['vname1'];
  52.  
  53. $vname3 = $vname0 . '/' . $vname1;
  54. unset($_SESSION['vname3']);
  55. $vname2 = $vname3;
  56.  
  57. }
  58.  
  59.  
  60.  
  61.  
  62. $w2 = ftp_nlist($conn_id, $vname2);
  63. $w4 = implode("<br>", $w2);
  64. $w3 = ' Jestes w katalogu: ' . $w1 . ' ';
  65. echo '<b>Przejdz do katalogu:</b> <input type="text" name="vname1"> <input type="submit" name="oks" value="Przejdz"> <b>Katalog: </b>' . $vname3 . ' / <a href="index.php"><b>Strona glowna</b></a><br><br>';
  66.  
  67.  
  68. echo $w4;
  69.  
  70.  
  71.  
  72. ftp_close($conn_id);
  73. }
  74. echo '</form></body></html>';
  75.  
  76.  
  77. ?>


To praktycznie działa, choć mam 1 zastrzeżenie:

  1. && $_SESSION['vname3'] !== $_POST['vname1']


Tutaj jest źle sprecyzowany ciąg znaków. Otóż co gdy na prawde w tym folderze jest folder o takiej samej nazwie? niestety nie mam pojęcia jak mogę to naprawić

proszę o pomoc
Kamil Pietrzak
http://forum.php.pl/index.php?showtopic=14...mp;#entry709988 Dzisiaj, 21:19
http://forum.php.pl/index.php?s=&showt...st&p=710012 Dzisiaj, 22:25

nei za duzo troche ?
l3l0
Po co pisać skoro już ktoś to zrobił.

Możesz wykorzystać (rozwijać, ulepszać) jakieś instniejące rozwiązania np:
http://github.com/dg/ftp-php
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.