PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dateiinhalt wird gelöscht...


DeMaephis
21.12.2002, 13:23:07
Tagchen, Ich hab ein kleines Problem, und zwar folgendes:

Ich habe mir ein Programm geschrieben was auch einen kleinen
Zähler beinhaltet, also wieviel mal das Programm aufgerufen wurde. Nun passiert folgendes das diese Statistik die ich in einer Datei speichere mit der Zeit einfach gelöscht wird, d.h. er beginnt wieder von vorne zu Zählen.

Das Problem hab ich auch bei einem CGI-Script festgestellt welches auch ein Zählwerk benutzt. Ich hoffe jemand kann mir sagen warum die Dateien gelöscht werden...bzw. der gesammte Inhalt der Datei in dem sich die Statistik befindet gelöscht wird.

Danke für eure Hilfe

Niels
21.12.2002, 14:32:31
kannst du das script vielleicht mal posten?

DeMaephis
21.12.2002, 23:03:35
So hier ist der Code...er funktioniert ohne Probleme nur das ab und zu mal die gesamte Datei gelöscht wird und er damit wieder von vorne anfängt zu zählen.

Um zu veränschaulichen was das Programm macht:
Es schreibt in die ersten 20 Zeilen einer Datei die Zeit (zirka) die die CPU brauchte um es auszuführen. Und nach der letzten Zeile wird einfach eine Zahl um eins erhöht und mit gespeichert, um festzustellen wieviel mal das Programm aufgerufen wurde.


<?PHP
include("includes/files.php");
$anz_stats = 20;
if (file_exists($pos_randomizer_tmp."/stats.tmp"))
{
$stats_content = file($pos_randomizer_tmp."/stats.tmp");
$anz_saved_stats = count($stats_content);
$counter = $stats_content[$anz_saved_stats - 1] + 1;
$write_stats = fopen($pos_randomizer_tmp."/stats.tmp","w+");
$average_time = (microtime() - $time_ms) + (time() - $time_s);
if ($average_time < 0) {$average_time++;}
fwrite($write_stats,$average_time."n");

for($k = 0;(($k < ($anz_saved_stats - 1)) && ($k < ($anz_stats - 1))); $k++)
{
fwrite($write_stats,trim($stats_content[$k])."n");
}
fwrite($write_stats,$counter);
fclose($write_stats);
}
else
{
$write_stats = fopen($pos_randomizer_tmp."/stats.tmp","w");
fclose($write_stats);
}
?>

DeMaephis
27.12.2002, 22:44:13
Kann mir den keiner sagen warum von heute auf morgen der Inhalt meiner Statistik-Datei einfach verschwindet... genau das gleiche Problem hat ein CGI-Script was ich auch auf diesem Server ausführe. Hier verschwindet auch einfach der Inhalt der Datei indem das CGI-Programm seine Daten speichert, kurz gesagt der Zähler des CGI-Programmes fängt wieder bei 0 an.

Wenn jemand eine Ahnung hat oder weiß woran das liegt... ich wäre äußerst dankbar... !

Wolfgang
31.12.2002, 17:18:57
Beim geposteten Script fällt mir auf, dass keine Sperrung der Datei vorgenommen wird, d.h. wenn tatsächlich zwei Benuter gleichzeitig zugreifen, könnte es hier zu einem ernsthaften Problem kommen - in der Fachterminologie auch gerne als "unvorhersagbaren Ergebnisse" bezeichnet - Datenverlust eingeschlossen. Unter Unix kann hier möglicherweise die"flock" Funktion (gibt's auch in PHP) abhilfe schaffen.

Viel Erfolg
Wolfgang

DeMaephis
16.01.2003, 14:21:27
Genau das gleiche hatte ich mir mittlerweile auch überlegt... wußte jedoch nichts von der flock-Funktion...

trotzdem vielen dank...