Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]oop klient ftp nie działa
Forum PHP.pl > Forum > Przedszkole
kingofspace
Witam zacząłem ostatnio się bawić w php obiektowe dorwałem więc na początek kurs stworzenia klienta ftp na obiektach i mam kilka problemów skrypt wygląda tak

  1. <?php
  2.  
  3. class ftp {
  4. var $conn;
  5. function __construct() {
  6. if ($_GET['do']=='unlog') {
  7. $this->usunDane();
  8. }
  9. if ($_POST['logowanie']=='1') {
  10. $this->logowanie();
  11. }
  12. if ($_SESSION['dane']=='1') {
  13. $this->polaczenie();
  14. if ($_POST['form2']=='true') {
  15. if ($_POST['usunPlik']!='')
  16. @ftp_delete($this->conn, $_POST['usunPlik']);
  17. }
  18. foreach ($_FILES as $this->odebrany) {
  19. if ($this->odebrany['name']!='' && @is_uploaded_file($this->odebrany['tmp_name'])) {
  20. if (!@move_uploaded_file($this->odebrany['tmp_name'], "upload/".$this->odebrany['name'])) {
  21. echo "<br />Nie mogę przenie�ć pliku ".$this->odebrany['name']." - pliku nie wysłano.";
  22. continue;
  23. }
  24. $this->upl = @ftp_put($this->conn, $_SESSION['folder'].basename($this->odebrany['name']), "upload/".$this->odebrany['name'], FTP_BINARY);
  25. if ($this->upl)
  26. echo 'Plik '.basename($this->odebrany['name'])." wysłany!<br />";
  27. else
  28. echo 'Błšd wysyłania pliku '.basename($this->odebrany['name'])."<br />";
  29. @unlink ("upload/".$this->odebrany['name']);
  30. }
  31. }
  32. $this->pokazFoldery($_SESSION['folder']);
  33.  
  34. }
  35. else {
  36. $this->pokazForme();
  37.  
  38. }
  39. }
  40.  
  41. private function logowanie() {
  42. $_SESSION['dane']='1';
  43. $_SESSION['login'] = trim($_POST['login']);
  44. $_SESSION['serwer'] = trim($_POST['serwer']);
  45. $_SESSION['pass'] = trim($_POST['pass']);
  46. }
  47.  
  48.  
  49. private function usunDane() {
  50. unset($_SESSION['dane'], $_SESSION['serwer'], $_SESSION['login'], $_SESSION['pass'], $_SESSION['folder']);
  51. }
  52.  
  53. private function polaczenie() {
  54. $this->conn = ftp_connect($_SESSION['serwer']);
  55. $this->wynikLogowania = ftp_login($this->conn, $_SESSION['login'], $_SESSION['pass']);
  56. if ((!$this->conn) || (!$this->wynikLogowania)) {
  57. $this->usunDane();
  58. Header("Location:index.php?error=1");
  59. } else {
  60. //ftp_pasv($this->conn, true);
  61. if (!isset($_POST['folder'])&&!isset($_SESSION['folder'])) {
  62. $_SESSION['folder'] = '/';
  63. }
  64. else if ($_POST['folder']!='') {
  65. $_SESSION['folder'] = $_POST['folder'];
  66. $_SESSION['folder'] = ereg_replace('/+','/',$_SESSION['folder']);
  67. }
  68. }
  69. }
  70.  
  71.  
  72. private function parse_rawlist($array) {
  73. for ($i = 0; $i < count($array); $i++ ) {
  74. $this->current = $array[$i];
  75. $this->structure[$i]['perms'] = substr($this->current, 0, 10);
  76. $this->structure[$i]['size'] = trim(substr($this->current, 33, 9));
  77. $this->structure[$i]['name'] = trim(substr($this->current, 55, strlen($this->current) - 55));
  78. }
  79. return $this->structure;
  80. }
  81.  
  82. private function displayDirs($folder) {
  83. echo "Użytkownik ".$_SESSION['login']."@".$_SESSION['serwer']."<br />";
  84. echo 'Wyswietlam zawarto�ć folderu '.$folder;
  85. $this->pliki = ftp_rawlist($this->conn, $folder);
  86. $this->rawlista = $this->parse_rawlist($this->pliki);
  87. echo "<table>";
  88. if ($folder!='/'&&$folder!='') {
  89. echo "<tr><td><img src=\"ikony/dir.png\" alt=\"\" /></td><td><a href=\"#\" onclick=\"document.f1.folder.value='".substr($folder, 0, strpos($folder, strrchr(substr($folder, 0, strlen($folder)-1), '/')))."/'; document.f1.submit()\">katalog nadrzędny</a></td></tr>\n";
  90. }
  91. foreach ($this->rawlista as $this->plik) {
  92. if (substr($this->plik['perms'], 0, 1) == 'd')
  93. $this->isdir = true;
  94. else
  95. $this->isdir = false;
  96. if ($this->plik['name']!='.'&& $this->plik['name']!='..'){
  97. echo "<tr><td>";
  98. if ($this->isdir==true) {
  99. echo "<img src=\"ikony/dir.png\" alt=\"\" /></td><td><a href=\"#\" onclick=\"document.f1.folder.value='".$folder.$this->plik['name']."/'; document.f1.submit()\">".$this->plik['name']."</a></td><td>&nbsp;</td><td>&nbsp;</td>";
  100. }
  101. else {
  102. echo "<img src=\"ikony/";
  103. switch (strtolower(strrchr($this->plik['name'], '.'))) {
  104. case '.jpg': echo "img";break;
  105. case '.pdf': echo "pdf";break;
  106. case '.txt': echo "txt";break;
  107. case '.doc': echo "txt";break;
  108. case '.htm': echo "www";break;
  109. case '.html': echo "www";break;
  110. default: echo 'none';break;
  111. }
  112. echo ".png\" alt=\"\" /></td><td>";
  113. echo "<a href=\"ftp://".$_SESSION['login']."@".$_SESSION['serwer'].$folder.$this->plik['name']."\">".$this->plik['name']."</a>"."</td><td>";
  114. if ($this->plik['size']<1024)
  115. echo $this->plik['size']. "b";
  116. else {
  117. echo round($this->plik['size']/1024, 2)."Kb";
  118. /*trudniejsza wesja do przeanalizowania dla zaawansowanych:
  119. echo "(".($this->plik['size']>1024?round($this->plik['size']/1024, 2).' K':$this->plik['size']." ")."b)";*/
  120. }
  121. echo "</td><td><a href=\"#\" onclick=\"document.f2.usunPlik.value='".$folder.$this->plik['name']."'; if (confirm('Czy usunać plik ".$this->plik['name']." ?')) {document.f2.submit()}\">usuń plik</td>";
  122.  
  123. }
  124. echo"</tr>\n";
  125. }
  126. }
  127. echo "</table>";
  128. }
  129.  
  130.  
  131.  
  132. private function pokazForme() {
  133. if ($_GET['error']=='1')
  134. echo "<span style=\"color:red\">Podałe� błędne dane serwera</span>";
  135. ?>
  136. <form action="ftp.php" method="post">
  137. <input type="text" name="serwer" size="5">Adres serwera<br />
  138. <input type="text" name="login" size="5">Twój login<br />
  139. <input type="password" name="pass">Twoje hasło<br />
  140. <input type="hidden" name="logowanie" value="1">
  141. <input type="submit" value="Loguj sie">
  142.  
  143. </form>
  144. <?php
  145. }
  146. function __destruct() {
  147. @ftp_close($this->conn);
  148. }
  149. }
  150.  
  151. $ftp=new ftp;
  152.  
  153. $output = ob_get_contents();
  154. ?>
  155. <HTML>
  156. <head>
  157. <meta http-equiv="content-type" content="text/html; charset=utf8">
  158. <TITLE>homeftp</TITLE>
  159. </HEAD>
  160. <BODY>
  161. <?php
  162. echo $output;
  163. ?>
  164. <form name="f1" action="ftp.php" method="post">
  165. <input type="hidden" name="folder" value="" />
  166. </form>
  167. <form name="f2" action="ftp.php" method="post">
  168. <input type="hidden" name="form2" value='true'>
  169. <input type="hidden" name="usunPlik" value="" />
  170. </form>
  171. <?php
  172. if ($_SESSION['dane']==='1') {
  173. ?>
  174. <form method="post" action="ftp.php" enctype="multipart/form-data">
  175. <input type="file" name="1">
  176. <input type="file" name="2">
  177. <input type="file" name="3">
  178. <input type="submit" value="wyslij">
  179. </form><br />
  180. <a href="?do=unlog">Wyloguj się z serwera</a>
  181. <?php
  182. }
  183. ?>
  184. </BODY>
  185. </HTML>
  186.  


po zalogowaniu powinna się ukazac lista folderów/plików na serwerze lecz sypię błędem:P
Fatal error: Call to undefined method ftp::pokazFoldery() in /var/www/virtual/kingofspace.c0.pl/ftp.php on line 34


Jeżeli chodzi o hosting skrypt pracuje na cba.pl



batman
1. Tytuł
2. Ortografia

Temat zamykam. Jeśli chcesz, by został otwarty, napisz do dowolnego moderatora PW z poprawnym tytułem oraz z poprawionymi błędami (wystarczy jeden).

Otwieram.
kingofspace
Podbijam
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.