Ohje...
zunächst einmal ist da noch eine kleine Unschönheit im Script: Die Textdatei wird immer 2x gespeichert, daß muß nicht sein.
Hier die Änderung:
<?
$ET = "";
while (list($name, $value) = each($HTTP_POST_VARS)) // hier wird das Formular ausgelesen
{
$$name = $value;
if ($name != "NTtext") continue;
$neu = fopen("text.txt","w");
fputs($neu, $NTtext);
fclose($neu);
$NTtext != "" ? $ET = "Text "".stripcslashes(htmlspecialchars($NTtext))."" wurde gespeichert!":$ET = "Text wurde gelöscht!";
}
echo $ET;
$datei = file("text.txt");
?>
<html>
<script type="text/javascript" language="JavaScript">
<!--
function loeschen()
{
document.NTposter.NTtext.value = "";
NTposter.submit();
}
//-->
</script>
<body onLoad="document.NTposter.NTtext.focus()">
<FORM method="post" action="admin.php" name="NTposter">
<P align="center">[B]Text:[/B]
<INPUT type="text" name="NTtext" maxlength="200" size="33" value="<?echo stripcslashes(htmlspecialchars($datei[0]));?>" onFocus="select()">
<INPUT type="submit" name="speichern" value="Speichern"><INPUT type="reset" name="reset" value="Löschen" onClick="loeschen()">
</FORM>
</body>
</html>
Alles anzeigen
Nun mal zur Erklärung, ich versuche es mal, aber nur die wichtigsten Punkte:
Es wird ein Variable mit dem Namen "ET" erstellt und dieser der Wert 'Leerzeichen' zugewiesen. Dabei dient das Leerzeichen hier nur der Optik.
while (list($name, $value) = each($HTTP_POST_VARS))
Alle Eingabefelder des Formulars werden nacheinander ausgelesen, dabei der Name des Eingabefeldes und der eingegebene Wert in 2 Hilfsstrings eingelesen
Es wird eine Variable mit dem übergebenen Namen erzeugt und der übergeben Wert (Text) zugewiesen.
if ($name != "NTtext") continue;
Wenn der Name der zuletzt erstellten Variable nicht "NTtext" ist, wird die Schleife von vorne ausgeführt (die nächste Variable erstellt)
$neu = fopen("text.txt","w");
fputs($neu, $NTtext);
fclose($neu);
der eingegeben Text wird in die Datei "text.txt" geschrieben. Wurde nichts eingegeben, dann wird das der Inhlat der "text.txt" gelöscht
$NTtext != "" ? $ET = "Text "".stripcslashes(htmlspecialchars($NTtext))."" wurde gespeichert!":$ET = "Text wurde gelöscht!";
Wenn in der Variablen "NTText" etwas steht, dann wird der Variablen "ET" der erste Text zugewiesen, sonst der zweite. Gleichzeitig werden Schutzzeichen (Backslash) und verschieden Steuerzeichen entfern, bzw . in HTML-Code umgewandelt.
Der Bestätigungstext wird geschrieben.
So, der Rest erklärt sich hoffentlich von allein.
Gruß aus der Marsch"
Ronald