Zur Navigation

2mal drücken

1 uwe

Hallo,
ich habe ein Script das eine Textdatei erweitert.

Aber ich muss immer 2x "hinzufügen" drücken bevor die Daten aktualisiert werden. Warum?

Gruss
Uwe

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title>Datei einlesen und zeilenweise ausgeben</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>

<body>
<?php
$datei = fopen('daten.inc','r'); ?>

Datei erfolgreich geöffnet, nun wird der vorhandene Inhalt angezeigt:
<hr>

<?php while (!feof($datei))
   {
   $zeile = htmlentities(fgets($datei,1024));
if ( strlen($zeile) > 1 ) { 

   echo $zeile.'<br>';
}
   }
fclose($datei); ?>
<hr>
Tragen Sie nun bitte den Text ein:<br><br>
<form method="post">


<input type="text" name="text" maxlength="50" size="50" >


<br>
<input type="submit" name="submit" value="Hinzufügen">
<input type="reset" value="Zur&uuml;cksetzen">
</form>
<!-- BEIM ABSCHICKEN DES FORMULARS WIRD DER EINGEGEBENE TEXT IN DER VARIABLEN $text ZUR VERFÜGUNG STEHEN //-->
<?php
if ($submit) 
   {
 if ( strlen($text) > 1 ) {

   //ACHTUNG: HIER IST WICHTIG, DASS DER APACHEWEBSERVER SCHREIBRECHTE FÜR DIE DATEI BESITZT!
   $datei = fopen('daten.inc','a+');
   //\r\n FÜGT EINEN ZEILENUMBRUCH EIN, BEVOR DER NEUE TEXT KOMMT:
  // $text = "\r\n$text";

   $text = "$text\n";
 //  fputs($datei,$text);

 fwrite($datei, $text);
   fclose($datei);
}
   }
?>
<hr>
Datei wieder geschlossen! 

</body>
</html>

08.04.2008 19:39

2 Jörg

Hallo uwe,

das liegt an der Reihenfolge der Abläufe innerhalb des Scriptes. Zuerst wird beim zweiten Aufruf (nach dem Absenden des Formulars) die immer noch leere Datei ausgelesen. Erst danach wird in die Datei der neue Inhalt geschrieben.

08.04.2008 22:29

3 uwe

Hallo Jörg,
danke.
Ich habe jetzt den Anfang (lesen der Tabelle) nach unten verschoben...

Gruss
Uwe

08.04.2008 22:38

Beitrag schreiben (als Gast)





[BBCode-Hilfe]