Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Masowe usuwanie plikow
Forum PHP.pl > Forum > Przedszkole
marcio
Witam chce usunac masowo wszystkie pliki z danego katalogu czy dobrze robie??
  1. <?php
  2. $katalog = '/var/www/kat/';
  3. $kat = opendir($katalog);
  4.  
  5. while($plik = readdir($kat)) {
  6.  
  7. $plik = count($plik);
  8.  
  9. for($i = 1; $i <= $plik; $i++) {
  10.  
  11. if(is_writable($plik)) {
  12. if(unlink("/var/www/kat/".$plik[$i]))
  13. echo('<script>alert("Usunieto plik!!");</script>');
  14. }
  15. else if(is_writable($plik) && chmod("/home/marcio/kat/".$plik[$i], 0777)) {
  16. if(unlink("/var/www/kat/".$plik[$i]))
  17. echo('<script>alert("Usunieto plik!!");</script>');
  18. }
  19. }
  20. }
  21. ?>

Czy dobrze to robie??
Grzyw
Byłoby spoko, gdybyś nie zrobił konfliktu nazw - nadpisujesz sobie zmienną.
Zobacz, w jednej linijce:
  1. <?php
  2. while($plik = readdir($kat)) {
  3. ?>


przypisujesz zmiennej $plik wynik działania funkcji readdir(), z której to korzystasz w dalszych linijkach.

Tyle, ze nadpisujesz sobie tą zmienną tutaj:
  1. <?php
  2. $plik = count($plik);
  3. ?>


Zmień sobie w linijce 7 $plik na $cnt i zastosuj tą zmienną w pętli. Wówczas powinno Ci to pójść.
marcio
Dzieki potem zobacze czy dziala ale napewno masz racje bo nadpisuje zmienna smile.gif

Mam jeszcze jeden problem mam inputa w ktorym mam wpisac katalog/plik lub plik ktory potem moze zosta usuniety/edytowany/sciagniety lecz nie dziala mi juz edytowanie probowalem za pomoca switch i if(isset) ale nic dlatego pytam o pomoc dam fragment kodu


Mam teraz inny problem mam takie dwie funckje ktore nie dzialaja widac formy strona sie odswierza ale nic sie nie dzieje z powodu bledow:
  1. <?php
  2. function pokaz_pliki() {
  3.  
  4. $katalog = $_POST['katalog'];
  5. $cmd = shell_exec("ls -lia " .$katalog);
  6. echo('<form method="post" action="'.$_SERVER['PHP_SELF'].'">
  7. <table align="center" width="50%">
  8. <tr><td><center>Katalog: '.$katalog.'</center></td></tr>
  9. <tr><td align="center">
  10. <textarea rows="10" cols="85" style="background-color:#000000; color:#CCCCCC";>'.$cmd.'</textarea></td></tr>
  11. <tr><td align="center">Idz do katalogu: <input type="text" name="katalog" size="30" value="'.$katalog.'" style="background-color:#000000; color:#CCCCCC;"> <input type="submit" value="Idz" style="font-style:italic; background-color:#000000; color:#00A54E;"></td></tr>
  12. ');
  13.  
  14. $kat = opendir($_POST['katalog']);
  15. echo($kat);
  16.  
  17. while($plik = readdir($kat)) {
  18. $plik = basename($katalog.$plik);
  19. }
  20. $file = $_POST['file'];
  21. global $file;
  22. echo('<tr><td align="center">
  23. Plik: <input type="text" name="file" size="23" style="background-color:#000000; color:#CCCCCC;">
  24. <input type="submit" name="edytuj" value="edytuj" style="font-style:italic; background-color:#000000; color:#00A54E;">
  25. <input type="submit" name="option" value="usun" style="font-style:italic; background-color:#000000; color:#00A54E;">
  26. <input type="submit" name="option" value="pobierz" style="font-style:italic; background-color:#000000; color:#00A54E;">
  27. </td></tr>
  28. </table></form>');
  29. closedir($kat);
  30.  
  31. if(isset($_POST['edytuj'])) {
  32.  
  33.  
  34. if(is_readable($file)) {
  35.  $wp = fopen($file, 'r');
  36. while(!feof($wp))
  37.  $zawartosc = fgets($wp, 1024);
  38. fclose($wp);
  39.  
  40.  echo('
  41.  <form method="post">
  42.  <table align="center">
  43.  <tr><td>
  44.  <textarea name="msg" rows="10" cols="70" style="background-color:#000000; color:#CCCCCC";>'. $zawartosc.'</textarea></td></tr>
  45.  <tr>
  46.  <td align="center" valign="top"><input type="submit" value="Aktualizuj" /></td></tr>
  47.  </table></form>
  48. ');
  49. }
  50. if(!empty($_POST['msg']) && is_writable($file)) {
  51.  $fp = fopen($file, 'w');
  52. fwrite($fp, $_POST['msg']);
  53.  fclose($fp);
  54. echo('<script>alert("Dodano");</script>');
  55. }
  56. }
  57. }
  58.  
  59. function masowe_usuwanie() {
  60.  
  61. echo('<form method="post">
  62. <table align="center">
  63. <tr><td align="center">Masowe usuwanie: <input type="text" name="all_file" size="20" style="background-color:#000000; color:#CCCCCC;">
  64. <input type="submit" name="wys_all" value="Wyczysc" style="font-style:italic; background-color:#000000; color:#00A54E;">
  65. </td></tr>
  66. </table>
  67. </form>
  68. ');
  69.  
  70. if(isset($_POST['wys_all'])) {
  71.  
  72. $kat = opendir($_POST['all_file']);
  73.  
  74. while($plik = readdir($kat)) {
  75.  
  76. $cnt = count($plik);
  77.  
  78. for($i = 1; $i <= $cnt; $i++) {
  79.  
  80. if(is_writable($plik[$i])) {
  81. if(unlink($plik[$i]))
  82. echo('<script>alert("Usunieto plik!!");</script>');
  83. }
  84. else if(is_writable($plik[$i]) && chmod($all_file.$plik[$i], 0777)) {
  85. if(unlink($all_file.$plik[$i]))
  86. echo('<script>alert("Usunieto plik!!");</script>');
  87. } 
  88. }
  89. }
  90. }
  91. }
  92. ?>

Wiem ze kod moze dlugi ale wiekszosc to html chodzi o to ze w pierwszej funkcji pokaz_pliki() sa 2 bledy:
Cytat
Warning: readdir(): supplied argument is not a valid Directory resource in /var/www/edytor.php on line 64
Warning: closedir(): supplied argument is not a valid Directory resource in /var/www/edytor.php on line 76

ednak 2 funkcji nie moge sprawdzic z powodu pierwszych 2 bledow mam nadzieje ze ktos pomoze bo juz 4 raz mam problem z tym readdir i closedir a przeciez podaje dobre argumenty
bartg
Przecież pisze, że ścieżka do katalogu jest błędna, a dokładniej to nie jest ścieżka do katalogu
marcio
Pisac pisze ale sciezka jest, przy pierwszym odpaleniu skryptu jej nie ma i wywala blad ale jak wpisze np do inputa /var/www/admin.php i nacisne na edytuj to dalej jest blad
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.