Hello,
Wo liegt der Fehler?
$daten = array( "autor" => $_POST['autor'],
"thema" => $_POST['thema'],
"datum" => date("d.m.y"),
"news" => $_POST['news'] );$fp = fopen("aktuell.txt","a+");
flock($fp,2);
#mimm lieber die Konstanten:
flock($fp,LOCK_EX);
oder wenn Du nur lesen willst reicht auch LOCK_SH
hier fehlt ein fseek($fp,0,SEEK_SET);
Nach einem open a+ steht der Zeiger ja hinten
$string_packed = fread($fp,filesize("aktuell.txt"));
$string = unserialize($string_packed);
Das ist kein String und sollte deshalb auch nicht so genannt wrden:
$_data = unserialize($string_packed);
$x = count($string) +1;
$string["beitrag$x"] = $daten;
bisschen ungeschickt
$_data[] = ... # würde die Daten automatisch anhängen.
allerdings sollte man die eindeutige ID schon mit abspeichern
das geht am Besten, wenn man die letzte ID mit abspeichert.
$string_packed_neu = serialize($string);
fseek($fp,0);
fwrite($fp,$string_packed_neu,strlen($string_packed_neu));
hier fehlt noch ein ftruncate, falls man nicht hinzugefügt sondern
geändert oder gelöscht hat.
flock($fp,3);
das ist obsolete, wenn Du die Datei gleich schließt, wird automatisch entsperrt.
fclose($fp);
Teil doch Deine das Array:
$_meta = array();
$_meta['lastid'] = 0; # das ist der Startwert.
$_data = array();
$_data[$id]['vorname'] = ...
$_data[$id]['datum'] = ...
Da Du mit LOCK_EX vor dem Lesen arbeitest, ist die ID auf jeden Fall gültig.
Also
- öffnen
- sperren
- auslesen
- deserialisieren
- letzte ID auslesen
- ID erhöhen und zurückschreiben
- neunen Datensatz mit neuer ID einfügen
- serialisieren
- zurückschreiben
- schließen
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau