Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Funkcja chmod
marcio
post
Post #1





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


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??


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Grzyw
post
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


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.

Ten post edytował Grzyw 26.01.2008, 18:15:51


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
marcio
post
Post #3





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


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


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
mls
post
Post #4





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

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


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.


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





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


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

Ten post edytował marcio 27.01.2008, 14:04:49


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
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: 22.08.2025 - 05:26