Hallo,
ich habe ein Problem mit einem Gästebuch. Bitte zerreisst mich nicht in der Luft wenn der Code totaler Schrott ist usw. Sicherlich geht es auch einfacher aber ich bin ja grad am Anfang.
Und zwar geht es darum:
Ich habe folgenden Functionscode:
Das Gästebuch schreibt ganz einfach in eine Textdatei und die Strings werden damit ausgelesen.
Wenn ich nun einen Eintrag schreibe und im Textfeld für den Eintrag Absätze nutze, dann fügt er diese ebenfalls in die txtdatei ein was zur Folge hat, dass mehrere Einträge erstellt werden, da ja für einen Eintrag 2 Zeilen reserviert sind.
Habe es bisher hinbekommen das er bei Absätzen <br /> in die Textdatei einfügt, jedoch die Absätze fügt er weiterhin ein.
Sieht dann folgendermaßen aus:
Autor1
Das ist die erste Zeile<br />
<br />
<br />
Das ist die 4. Zeile
d.h. das der text "Das ist die 4. Zeile" wieder als Autor interpretiert wird und somit 1 Eintrag total leer drin steht.
Mir ist klar, dass es eigentlich so drin stehen sollte:
Autor1
Das ist die erste Zeile<br /><br /><br />Das ist die 4. Zeile
Dann würde es ja funktionieren, oder?
Danke schonmal im Voraus
ich habe ein Problem mit einem Gästebuch. Bitte zerreisst mich nicht in der Luft wenn der Code totaler Schrott ist usw. Sicherlich geht es auch einfacher aber ich bin ja grad am Anfang.
Und zwar geht es darum:
Ich habe folgenden Functionscode:
PHP-Code:
<?php
$beitraege = array();
beitrag_schreiben();
beitrag_einlesen();
function beitrag_schreiben($datei = "beitraege.txt")
{
if (!empty($_REQUEST['text']))
{
$dh = fopen($datei, "a");
if (!$dh)
{
print "Kann Beitrag nicht schreiben!\n";
}
else
{
fputs($dh, nl2br($_REQUEST['text'])."\n");
if ($_REQUEST['autor'])
{
fputs($dh, $_REQUEST['autor']."\n");
}
else
{
fputs($dh, "unbekannt\n");
}
fclose($dh);
}
}
}
function beitrag_einlesen($datei = "beitraege.txt")
{
global $beitraege;
$dh = fopen($datei, "r");
if(!$dh)
{
print "Datei kann nicht gelesen werden!\n";
}
else
{
for ($i = 0; !feof($dh); $i++)
{
$zeile = fgets($dh);
if ($zeile != "")
{
$beitraege[$i]['text'] = $zeile;
$beitraege[$i]['autor'] = fgets($dh);
}
}
fclose($dh);
}
}
function beitrag_ausgeben($beitrag)
{
print "<div id=GB>";
print "<b>Autor: </b>".$beitrag['autor']."\n";
print "<br />";
print $beitrag['text']."\n";
print "</div>\n";
}
function formular_ausgeben()
{
?>
<form method="post" action="<?php print $_SERVER['PHP_SELF'] ?>">
<b>Autor: </b><input type="text" class="felder" width="50" name="autor" />
<br />
<b>Eintrag: </b><textarea class="felder" name="text" cols="50" rows="10"></textarea>
<br />
<input type="submit" class="felder" value="absenden" />
</form>
<?php
}
?>
Wenn ich nun einen Eintrag schreibe und im Textfeld für den Eintrag Absätze nutze, dann fügt er diese ebenfalls in die txtdatei ein was zur Folge hat, dass mehrere Einträge erstellt werden, da ja für einen Eintrag 2 Zeilen reserviert sind.
Habe es bisher hinbekommen das er bei Absätzen <br /> in die Textdatei einfügt, jedoch die Absätze fügt er weiterhin ein.
Sieht dann folgendermaßen aus:
Autor1
Das ist die erste Zeile<br />
<br />
<br />
Das ist die 4. Zeile
d.h. das der text "Das ist die 4. Zeile" wieder als Autor interpretiert wird und somit 1 Eintrag total leer drin steht.
Mir ist klar, dass es eigentlich so drin stehen sollte:
Autor1
Das ist die erste Zeile<br /><br /><br />Das ist die 4. Zeile
Dann würde es ja funktionieren, oder?
Danke schonmal im Voraus
Kommentar