Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Funkcja chmod
Forum PHP.pl > Forum > Przedszkole
marcio
Witam mam pytanie gdy wyskakuje taki blad przy uzywaniu funkcji chmod
Cytat
Warning: chmod() [function.chmod]: Operation not permitted in /var/www/edytor.php on line 114

Czy idzie ja jakos zastapic??Bo jak nie to po co ona jest jak nie moge zmienic praw zadnemu plikow co mial prawa root rw i reszta r??
Grzyw
Jeżeli właścicielem pliku jest root, a prawa innych są ustawione tylko na odczyt. to apache nie będzie miał uprawnień do zmiany uprawnień. Ta funkcja jest wywoływana prawidłowo, system operacyjny się burzy.
marcio
Tez tak myslalem ale nie bylem pewny szkoda!! smile.gif

A Grzyw bylbym bardzo wdzieczny jak pomozesz pytalem wczesniej o te masowe usuwanie plikow mam taka krotka funkcje ktora wywala taki blad:
Cytat
Warning: unlink(.) [function.unlink]: Is a directory in /var/www/edytor.php on line 153

A to kod
  1. <?php
  2. function masowe_usuwanie() {
  3.  
  4. echo('<form method="post">
  5. <table align="center">
  6. <tr><td align="center">Masowe usuwanie: <input type="text" name="all_file" size="20" style="background-color:#000000; color:#CCCCCC;">
  7. <input type="submit" name="wys_all" value="Wyczysc" style="font-style:italic; background-color:#000000; color:#00A54E;">
  8. </td></tr>
  9. </table>
  10. </form>
  11. ');
  12.  
  13. if(isset($_POST['wys_all'])) {
  14.  
  15. $kat = opendir($_POST['all_file']);
  16.  
  17. while($plik = readdir($kat)) {
  18.  
  19. $cnt = count($plik);
  20.  
  21. for($i = 1; $i <= $cnt; $i++) {
  22.  
  23. if(is_writable($plik[$i])) {
  24. if(unlink($plik[$i]))
  25. echo('<script>alert("Usunieto plik!!");</script>');
  26. }
  27. else if(is_writable($plik) && @chmod($$plik[$i], 0777)) {
  28. if(unlink($plik[$i]))
  29. echo('<script>alert("Usunieto plik!!");</script>');
  30. } 
  31. }
  32. }
  33. }
  34. }
  35. ?>

I wpisuje w formie np /home/cos/kalaogg do czyszcenia
Katalog ma prawa usuwanie/dodawnia plikow wszystkie pliki maja chmod 777 wiec nie wiem co jest zle moze cos ze zmiennymi powalilem a pytam bo juz mnie glowa boli i nie wiem o co chodzi biggrin.gif
mls
Podstawy języka angielskiego. A przynajmniej terminologii informatycznych.
Unlink nie może usuwać katalogów. A "." i ".." są katalogami. Dodaj sprawdzanie !is_dir() lub is_file() i tyle.
marcio
Tak apropo to juz tak zrobilem o wiele mniej kodu:
  1. <?php
  2. function masowe_usuwanie() {
  3.  
  4. echo('<form method="post" action="'.$_SERVER['PHP_SELF'].'">
  5. <table align="center" width="75%" style="border: 1px dotted white;">
  6. <tr><td align="center">Masowe usuwanie: <input type="text" name="all_file" size="20" style="background-color:#000000; color:#CCCCCC;">
  7. <input type="submit" name="wys_all" value="Wyczysc" style="font-style:italic; background-color:#000000; color:#00A54E;">
  8. </td></tr>');
  9.  
  10. if(!empty($_POST['all_file']) && isset($_POST['wys_all'])) {
  11.  
  12. $k = $_POST['all_file'];
  13. $kat = opendir($k);
  14.  
  15. while($plik = readdir($kat)) {
  16.  
  17. $pplik = $k.'/'.$plik;
  18. if(is_file($pplik) && unlink($pplik)) 
  19. echo('<center><b style="color:#f00">Usunieto wszystkie pliki z folderu: '.$_POST['all_file'].'</b></center><br>');
  20. } 
  21. }
  22. }
  23. ?>


Tylko jeszcze takie male pytanie dla mnie latwe rzeczy sa trudniejsza niz te trudne jak widac komunikat wyswietli sie tyle razy ile jest plikow w katalogu jak to zmienic zeby sie wyswietlilo tylko raz?? smile.gif tylko sie nie smiejcie bo wczoraj o 2.00 to juz na oczy nie widzialem
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.