Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: File not exists...
Forum PHP.pl > Forum > PHP > Object-oriented programming
Virti
Witam ponownie winksmiley.jpg
Eh... od błędu, do błędu.
Tym razem problem polega na znikającym pliku Config.php

Sytuacja jest taka: na początku includuję plik "config.php", nie wywala żadnych błędów, jednym słowem wszystko jest cacy winksmiley.jpg
pod koniec, plik config.php zostaje zaktualizowany (przynajmniej ma zostać), ale funkcja file_exists() zwraca FALSE :/

Mógłby mi ktoś wytłumaczyć co to może być? Dodam, że kożystam z serwera Xampp w wersji na linuxa (mandriva '07 PP), chmody ustawiłem w MC na 107777 (w akcie desperacji zaznaczyłem tam wszystko winksmiley.jpg )

EDIT: przykładowu kod:

  1. <?php
  2. class Config{
  3. private $__c;
  4. private $md5;
  5.  
  6. public $save = true;
  7. public $backup = true;
  8.  
  9. /**
  10.  * Konstruktor...
  11.  *
  12.  */
  13. function __construct(){
  14. $this -> LoadData();
  15. $this -> md5 = $this -> genMd5();
  16. }
  17.  
  18. /**
  19.  * Ładuje zmienne konfiguracyjne
  20.  *
  21.  */
  22. private function LoadData(){
  23. include('config.php');
  24.  
  25. if(isset($_CONFIG)){
  26. foreach($_CONFIG as $var => $val){
  27. $this -> __c[$var] = $val;
  28. }
  29. }
  30. }
  31.  
  32. /**
  33.  * Generujw klucz md5
  34.  *
  35.  * @return string
  36.  */
  37. private function genMd5(){
  38. return md5(serialize($this -> __c));
  39. }
  40.  
  41. /**
  42.  * Sprawdza sumę kontrolną konfiguracji i w razie potrzeby zapisuje nową
  43.  *
  44.  */
  45. private function checkConfig(){
  46. //sztuczna zmiana sumy kontrolnej
  47. $this -> md5 = 'as';
  48.  
  49. if($this -> md5 !== $this -> genMd5() AND $this -> save === true){
  50. $this -> _debug('save');
  51. $this -> saveConfig();
  52. } else {
  53. echo 'NIE SAVEEE';
  54. }
  55. }
  56.  
  57. private function saveConfig(){
  58. var_dump(file_exists('config.php'));
  59. }
  60.  
  61. /**
  62.  * Destruktor...
  63.  *
  64.  */
  65. function __destruct(){
  66. $this -> checkConfig();
  67. }
  68.  
  69. /**
  70.  * Obsługa debugowania dla konfiguracji
  71.  *
  72.  */
  73. function _debug(){
  74.  
  75. }
  76. }
  77. ?>


w rezultacie dostaję (z tego var_dump...):
Cytat
bool(false)


EDIT: ustawiałem również chmod 0777 poprzez konsolę (txt, jako root oczywiście) co również nic nie dało :/
mike
Jesteś użytkownikiem Linuxa i nie dbasz o wielkość liter?

config.php != Config.php
Virti
1. jestem początkującym userem linuxa winksmiley.jpg
2. faktycznie, popełniłem taki błąd, ale po poprawie (edytowałem też post wyżej...) nadal mam bool(false)

EDIT! biggrin.gif
ok, w manualu php w prawdzie nic nie ma na ten temat, jednak (conajmniej) jeden użytkownik miał ten sam problem, wymyślił on również rozwiązanie:
  1. <?php
  2. function file_exists_2gb($filename) {
  3.  system("test -f $filename", $rval);
  4.  return ($rval == 0);
  5.  }
  6. ?>


co o tym myślicie? smile.gif testowałem to, owszem działa. Mam tylko kilka pytań:
1. Jak będzie się to sprawdzało na systemach NIE uniksowych itp... (Winzgroza)
2. Jest sposób aby napisać coś podobnego do fopen (fopen również nawala :/ pokazuje "brak dostępu" mimo, że chmod jest na 0777 a skrypt jest uruchamiany z konta właściciela tego pliku)
3. Co jeśli php będzie pracowało na safe_mode? W tym wypadku (http://pl.php.net/manual/pl/features.safe-mode.php) system(); jest ograniczony... ;/

Z góry dzięki za odpowiedzi smile.gif
Pucy
Tes bym chcial znac odpowiedz na to pytanie.

Ja mam tak ze wykonuje pewna okreslona liczbe postow... ktora sprawdza plik swtorzony przy 1 poscie... Raz na jakis czas w momencie np. 10/15 posta wynika ze plik nie istnieje? Co ciekawe... funckja zwraca czyto file_exists czy fopen ze nie istnieje plik ale on jest na serwerze... zaraz po informacji o nieistnieniu daje DIE(); wiec nie moze byc stworzony ten plik w zaden sposob...

Inna dziwna rzecza jest to ze dzieje sie tak losowo, czasem przy kilkunastu turach jest ok, a czasami w polowie mi wykrzacza... moze nazwa pliku jest problemem? Albo iloscp likow tworzonych w katalogu?

plik sklada sie ze stringu i kawalka wyjscia z md5()
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.