Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zerowanie plików z danymi:-(
Sajm_on
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 13.04.2005

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


Witam!
Mam nasptepujacy problem:
napisalem skrypt w php ktory zapisuje dane do pliku. Jednak co jakis czas np co dzien lub dwa plik jest pusty-zeruje sie zawartosc lub przycina;-( Co moze byc przyczyna? Serwer sie resetuje czasem w jakism krytycznym moncie czy zle skrypt napsiany jest?
O to fragment tego skryptu:

  1. <?php
  2.  
  3.    $file=fopen(&#092;"download.txt\", \"r+\"); // odczyt z glownego pliku download
  4.    flock($file, 2);
  5.    $danezpliku=fread($file, filesize(&#092;"download.txt\"));
  6.  
  7. (...)
  8.  
  9.    if(file_exists(&#092;"$sciezka\")) { // zabezpieczenie przed nieistnieniem pliku
  10.  
  11. (...)
  12.  
  13. if($daneplik) { // dodane i zmodyfikowane
  14.         ftruncate($file, 0); // wyzerownie pliku
  15.         fseek($file, 0);
  16.          fwrite($file, $daneplik); // zapis do pliku nowych danych
  17. }
  18.       flock($file, 3);
  19.       fclose($file);
  20.      
  21.       header(&#092;"Location: $sciezka\"); //wysłanie do przeglądarki informacji o lokalizacji pliku
  22.  
  23.    } // koniec ifa
  24.    else {
  25.        flock($file, 3);
  26.        fclose($file);
  27.        echo &#092;"Plik nie istnieje...\";
  28.    }
  29.  
  30. ?>


Jak toi ewntualnie przerobic?

Ten post edytował Sajm_on 13.04.2005, 14:18:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
ftruncate($file, 0); // wyzerownie pliku
fseek($file, 0);
if($daneplik) // to dodalem ostatnio
fwrite($file, $daneplik); // zapis do pliku nowych danych

Najpierw czyścisz plik, a potem ewentualnie jeżeli są dane to wpisujesz do pliku. A co jeśli danych nie ma? Wówczas plik się wyczyszcza i nie wypełnia. Moim zdaniem tu jest problem. Pewnie co jakiś czas zmienna $daneplik jest pusta lub równa 0 (liczba 0). Wówczas if zwróći false
Go to the top of the page
+Quote Post
tiraeth
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


Jeżeli nie znasz zasad to mówię: Proszę kod umieszczać w odpowiednim bbcode!!
Go to the top of the page
+Quote Post
Sajm_on
post
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 13.04.2005

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


Sorki juz wiem jak mam formatowac teskt. Osteczna wersja skryptu jest w pierwszym poscie. Czekam na jakies pomysly! (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif)
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: 22.08.2025 - 14:33