Tom: fopen mit a ... nicht an das Ende, sondern den Anfang setzen

Beitrag lesen

Hello Stephan,

dedlfix hat Dir in seiner Antwort schon das CSV-Format zum Speichern empfohlen.
https://forum.selfhtml.org/?t=201988&m=1363584
Ich empfehle Dir noch eine andere Möglichkeit und möchte Dich gleichzeitig auch noch auf das Problem der Nebenläufigkeit hinweisen.
http://aktuell.de.selfhtml.org/artikel/programmiertechnik/dateisperren/

Wenn mehrere Clients über ihre Ressource-Scripte gleichzeitig auf die Datei zugreifen dürfen, was bei Webanwendungen fas immer der Fall ist, muss man die Zugriffe serialisieren. Während ein Request ein (Lesen + )Schreiben veranlasst, müssen die anderen einen Moment warten. Dabei müssen die Leseprozesse und die Schreibprozesse jeweils zu einem gebunden werden, damit niemand anderes dazwischenfunken kann.

Also mein Code ist:

<?php

$daten=$_POST[kommentar].'<br />von <a href="mailto:'.$_POST[mail].'">'.$_POST[name].'</a><br /><strong>'.date("d.m.&#8217;y, H:i").'</strong><br />';
$datenbank='daten.dat';
$datei=fopen($datenbank,'a');
fwrite($datei, $daten);
?>


>   
> Hauptdatei:  
> ~~~php

<?php  

> 	$datenbank='daten.dat';  
> 	$datei=fopen($datenbank, 'r');  
> 	fpassthru($datei);  
> ?>

Du hast ausßerdem die Anführungszeichen für die Elementbezeichner im $_POST-Array vergessen.

Mein Vorschlag deshalb:

Benutze die Funktionen serialize() und unserialize() und speichere einfach die Post-Daten atomistisch in diesem Array, also benutze für jedes gewünschte Element aus dem Post-Array auch ein Element im Datensatz des Speicherarrays.

Ich schreibe nachher noch etweas mehr dazu.
Schau dir schon mal die Funktionen an und lies den Artikel von Christian.
http://de.php.net/manual/en/function.serialize.php

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de