Hallo,
ich habe eine Linksammlung wo man angeben kann, ob der Link "broken" also nicht erreichbar ist. Der User soll mittels Klick den Status des Links also ändern können. Das Problem ist nur, dass der Parser das Script
doppelt ausführt und somit folgendes macht:
1. Script-Aufruf (noch normal)
0 (gelesen) ->
1 (geschrieben)
2. Script-Aufruf (????)
1 (gelesen) ->
0 (geschrieben)
Ergebnis ist, dass der Status des Linkes nicht verändert wurde. Ich hoffe ihr habt da eine Lösung für mich parat:
Code:
// Einlesen der Text-Datenbank: Einträge (µ ist das Trennzeichen)
$cfile="fun/data/fun_entries.txt";
if (file_exists($cfile)) {
$Datei = fopen($cfile,"r"); $t=0;
do {
$Inhalt = trim(fgets($Datei,5000));
list($Entry_Parent[$t],$Entry_ID[$t],$Entry_Titel[$t],$Entry_Address[$t],$Entry_Datum[$t],$Entry_Zeit[$t],$Entry_IP[$t],$Entry_Benutzer[$t],$Entry_Broken[$t],$Entry_Views[$t])=explode("µ",$Inhalt);
if ($newID<$Entry_ID[$t]) { $newID=$Entry_ID[$t];}
$t++;
} while (!feof($Datei));
$Entry_Anzahl=$t;
$newID++;
fclose($Datei);
}
// Nachdem der Linkstatus geändert werden soll, wird DB gespeichert.
// $id ist die ID des Links, der bearbeitet werden soll
echo "<b>Vielen Dank!</b><br>
<br>";
$s = array_search($id,$Entry_ID);
echo $Entry_Broken[$s];
if ($Entry_Broken[$s]==0) {
echo "Der Link <b>".$Entry_Titel[$s]."</b> wurde nun in den Status 'Nicht-Erreichbar' gesetzt !"; $Entry_Broken[$s]=1;
} elseif($Entry_Broken[$s]==1) {
echo "Der Link <b>".$Entry_Titel[$s]."</b> wurde nun in den Status 'Erreichbar' gesetzt !"; $Entry_Broken[$s]=0;
}
$file="fun/data/fun_entries.txt";
$Datei = fopen($file,"w");
for ($e=0;$e<$Entry_Anzahl;$e++)
{
if ($e==0) { $a="";} else { $a="rn";}
$line = trim($a.$Entry_Parent[$e]."µ".$Entry_ID[$e]."µ".$Entry_Titel[$e]."µ".$Entry_Address[$e]."µ".$Entry_Datum[$e]."µ".$Entry_Zeit[$e]."µ".$Entry_IP[$e]."µ".$Entry_Benutzer[$e]."µ".$Entry_Broken[$e]."µ".$Entry_Views[$e]);
fwrite ($Datei, $line);
}
fclose ($Datei);
Ich habe gehört, dass while(!eof($datei)) die Ursache sein könnte, weil es da durch eine Verzögerung gab und der IE wegen dem Timeout die Seite nochmal neu aufruft.
Kann ich das verhindern?
cu, Stormy