Hallo
if (file_exists($fn))
diese Abfrage ist irrelevant, da bei nichtexistens die Datei angelegt wird
{
$fp=fopen($fn,"r");
$dat=fread($fp,filesize($fn));
fclose($fp);$line=explode("\n",$dat);
$anz=count($line)-1;
}if ($me>$anz) { $me=$anz; }
if ($action=="Absenden")
$selected = $_POST('Kategorie');
PASE ERROR => $_POST['Kategorie'];
$selected = $_POST['Grafik'];
hier wird dein gerade durch $_POST['Kategorie'] gesetzter Wert schlichtweg durch $_POST['Grafik'] überschrieben
$text=str_replace("\n","",$text);
$entry="$Titel|$Datum|$Text|$Grafik-URL";$fp=fopen($fn,"w");
$res1=fwrite($fp,"$entry\n");
if ($anz>0) {
Diese abfrage ist irrelevant, sie wird von for() genauso durchgeführt
for($j=0;$j<$me;$j++) {
fwrite($fp,"$line[$j]\n"); } }
fclose($fp);Ich hatte es vorher schon ausprobiert, bei fopen "r+" zu benutzen, da dort ja am Anfang der neue Inhalt angefügt wird, aber dort hatte ich das gleich Problem. Außerdem habe ich der Textdatei sicherheitshalber CHMOD 777 gegeben. Doch das Problem war noch immer da.
Übrigens Dein Script sollte ohne auslesen des Inhalts mit fopen($fp,'a'); soweit zurechtkommen.
Im wesentlichen berücksichtigt Dein Script nicht das Auftreten konkurierenden Schreibzugriffe. Beschäftige Dich micht dem Einsatz von flock() oder aber mit Semaphoren.
Gruß aus Berlin!
eddi