Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Sprawdzanie chmodów
alkesz1718
post
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 8.12.2014
Skąd: Czernina

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


Witam przy pliku instalacyjnym mam taki kod na sprawdzanie chmodów dla poszczególnych plików:
  1. ######## Sprawdzanie CHMOD ########
  2. if($step == 2){
  3. $i = array('./engine/ajax/bbcode.php',
  4. './engine/classes/js/bbcodes.js',
  5. './engine/classes/parse.class.php',
  6. './engine/inc/options.php',
  7. './engine/inc/sound.php',
  8. './engine/inc/inclide/inserttag.php',
  9. './engine/modules/bbcode.php',
  10. './engine/skins/default.skin.php'
  11. );
  12.  
  13. $chmod_errors = 0;
  14. $not_found_errors = 0;
  15. foreach($i as $file){
  16.  
  17. if(!file_exists($file)){
  18. $file_status = "<font color=red>Not found!</font>";
  19. $not_found_errors ++;
  20. }
  21. elseif(is_writable($file)){
  22. $file_status = "<font color=green>writable</font>";
  23. }
  24. else{
  25. @chmod($file, 0777);
  26. if(is_writable($file)){
  27. $file_status = "<font color=green>writable</font>";
  28. }else{
  29. @chmod("$file", 0755);
  30. if(is_writable($file)){
  31. $file_status = "<font color=green>writable</font>";
  32. }else{
  33. $file_status = "<font color=red>forbidden</font>";
  34. $chmod_errors ++;
  35. }
  36. }
  37. }
  38. $chmod_value = @decoct(@fileperms($file)) % 1000;
  39.  
  40. }
  41.  
  42. $content = <<<HTML
  43. <h1>Sprawdzanie CHMOD</h1>
  44. Moduł Sprawdza czy potrzebne pliki przy instalacji są dostępne<br /><br />
  45. <ul><li>$file<span>$file_status</span></li></ul> // span ma przeniesienie na prawą stronę
  46. Aby kontynuować, kliknij przycisk 'dalej'.
  47. HTML;
  48.  
  49. }

Problem mam taki że przy wyświetlaniu zamiast tych wszystkich katalogów z plikami z statusem dostępu pokazuje mi tylko 1 ostatni czyli ./engine/skins/default.skin.php a powinno mi wyświetlać wszystkie a obok status. Może znajdziecie gdzie mam tu błąd że mi nie wyświetla wszystkiego
Go to the top of the page
+Quote Post
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


  1. }//koniec pętli foreach
  2.  
  3. $content = <<<HTML
  4. <h1>Sprawdzanie CHMOD</h1>
  5. Moduł Sprawdza czy potrzebne pliki przy instalacji są dostępne<br /><br />
  6. <ul><li>$file<span>$file_status</span></li></ul> // span ma przeniesienie na prawą stronę
  7. Aby kontynuować, kliknij przycisk 'dalej'.
  8. HTML;

podmień na
  1. // tu jest .=
  2. $content .= <<<HTML
  3. <h1>Sprawdzanie CHMOD</h1>
  4. Moduł Sprawdza czy potrzebne pliki przy instalacji są dostępne<br /><br />
  5. <ul><li>$file<span>$file_status</span></li></ul> // span ma przeniesienie na prawą stronę
  6. Aby kontynuować, kliknij przycisk 'dalej'.
  7. HTML;
  8. } //koniec pętli foreach
  9. echo $content;

I nie zapomnij zainicjować zmienną $content tuż przed pętlą

Ten post edytował CuteOne 11.03.2015, 10:16:12
Go to the top of the page
+Quote Post
alkesz1718
post
Post #3





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 8.12.2014
Skąd: Czernina

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


Przerobiłem trochę to co podałeś na to:
  1. $con .= <<<HTML
  2. <ul><li>$file<span>$file_status</span></li></ul>
  3. HTML;
  4. }
  5. $content .= <<<HTML
  6. <h1>Sprawdzanie CHMOD</h1>
  7. Moduł Sprawdza czy potrzebne pliki przy instalacji są dostępne<br /><br />
  8. $con<br /><br />
  9. Aby kontynuować, kliknij przycisk 'dalej'.
  10. HTML;


gdyż twój kod powodował że to co było w content powielało się ale już wyświetlało prawidłowo wszystkie pliki jakie miał kod sprawdzać... a w takim kodzie co ja zrobiłem bazując na twoim udało się zrobić poprawnie i teraz mam jeszcze jedno pytanie jak zrobić kod php by przykładowo:
z pliku /engine/data/sound.php (plik configuracyjny jak na wielu stronach jest config.php to u mnie jest do modułu sound.php) z zmiennej:
  1. 'version' => '1.0'

wyciągało 1.0 pokazywało tekst: "Posiadasz starą wersję modułu. Instalator automatycznie zaktualizuje ją do najnowszej wersji"; po czym edytowało 1.0 na 2.0 po czym również pokazywało tekst że poprawnie (bądź wystąpił błąd) zaktualizowano moduł

Dodam również że tekst podczas instalacji zawsze wyświetlany jest w zmiennej:
  1. $content = <<<HTML
  2. <h1>Tytuł</h1>
  3. tekst/informacje i wgl bzdety bajery<br /><br />
  4.  
  5. Aby kontynuować, kliknij przycisk 'dalej'.
  6. HTML;


Ten post edytował alkesz1718 11.03.2015, 17:18:11
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 07:51