ďťż

[PHP] sprawdzanie obecności i zapisywalności pliku wprowadzony kod nie działa

       

Podstrony


telcocafe

if(file_exists('config.inc')) { if(is_writable('config.inc')) { $chmod = "<b>OK</b> - Plik istnieje i jest zapisywalny"; } } else { $chmod = "<b>UWAGA</b> - Plik nie jest zapisywalny lub nie istnieje"; }
pomimo tego, że próbuję nadawać temu plikowi różne chmod'y zmienna $chmod ciągle ma wartość "OK...". co jest złego w tym kodzie?



jeżeli robisz pod windowsem to unixowe prawa dostępu nie obowiązują.

Jeśli testujesz to na Windows.... hm... Windows nie obsługuje chmodów wogóle:) Przetestuj na Linuxie. Jak nie masz dostępu do Linuxa to wgraj na jakiś darmowy serwer. Większość z nich pracuje na pingwinie.

PS. jeśli ustawisz w Windows atrybuty pliku na "Tylko do odczytu" to powinno zwrócić FALSE w is_writeable();

przecież wiem... :> wszystko jest na linuksie



Na moje oko (choć nie testowałem tego kodu) to w przypadku gdy plik nie będzie zapisywalny to zmienna $chmod będzie miała pustą wartość. Może właśnie błąd w sprawdzaniu warunków powoduję tą usterkę.

Zobacz ten kod:

if(file_exists('config.inc')) { if(is_writable('config.inc')) { $chmod = "<b>OK</b> - Plik istnieje i jest zapisywalny"; } else {$chmod = "<b>UWAGA</b> - Plik nie jest zapisywalny";} } else { $chmod = "<b>UWAGA</b> - Plik nie istnieje"; }

Ja proponuje:
if(is_writable('config.inc')) { $chmod = "<b>OK</b> - Plik istnieje i jest zapisywalny"; } else { $chmod = "<b>UWAGA</b> - Plik nie jest zapisywalny lub nie istnieje"; }
Ponieważ is_writable() zwraca True gdy plik istnieje i jest zapisywalny, wiec nie ma potrzeby sprawdzania czy plik istnieje.

@NeViS: racja :D
ale dalej nie działa. nic nie dzieje się również gdy zmieniam chmody na różne.

moze
if(fopen('plik.txt','r')) echo 'ok'; else echo 'zle';

nie testowane ale mozep odziala :P

Sprawdź ścieżke do pliku, przed chwilą wrzuciłem skrypt na serwer i działa tak jako powinien działać, wykrywa czy pllik istnieje i czy ma odpowiednie chmod. Ten skrypt działa na 100%:
<?php if(is_writable('/test/index.php')) { $chmod = "<b>OK</b> - Plik istnieje i jest zapisywalny"; } else { $chmod = "<b>UWAGA</b> - Plik nie jest zapisywalny lub nie istnieje"; } echo $chmod; ?>

ścieżkę zmieniałem i było UWAGA tylko kiedy zmieniłem nazwe pliki (config2.inc).
@NeViS: twój kod u mnie nie idzie
cały skrypt mam na serwerze xcx.pl, safe_mode wyłączony jest.

niestety każdy z waszych sposobów pokazuje że plik jest zapisywalny pomimo różnych chmodów. po próbie zapisu do pliku jakiegoś tekstu, pojawia się on w nim. tzn. zapisuje pomimo zablokowania zapisu :blink: serwer to xcx.pl

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.