Hallo zusammen,
ich bin neu hier bei euch und verzweifle gerade an einer Studienaufgabe.
Wir sollen ein einfaches Forum basteln mit Textarea für die Nachricht und Textfeld für den Namen des Verfassers.
Die Eingaben werden dann in einer normalen Txt-Datei gespeichert und ausgelesen.
Jetzt sollen wir die Zeilenumbrüche aus der Textarea mit der Funktion str_replace() entfernen, weil Sie die Struktur der Txt-Datei durcheinanderbringen.
Pro Beitrag sind nämlich nur 2 Zeilen (durch einen Zeilenumbruch getrennt) vorgesehen.
Ich poste mal den Quellcode der beiden Dateien:
Dies ist quasi die index.php in der alle weiteren Funktionen eingebunden werden.
<?php
require_once ("forumsfunktionen5.php");
?>
<html>
<head><title>ESA Aufgabe 6 - Forum</title></head>
<body>
<h1>Willkommen beim Forum</h1>
<p><b>Sagen Sie uns Ihre Meinung</b></p>
<?php formular_ausgeben(); ?>
<hr />
<?php
for ($i = count($beitraege)-1; $i >= 0; $i--)
{
beitrag_ausgeben($beitraege[$i]);
print "<hr>\n";
}
?>
<p>Thats all folks.</p>
</body>
</html>
Alles anzeigen
Und in dieser Datei stehen dann die ganzen Funktionen.
Diese Programmzeile ist vorgegeben und soll verwendet werden --- $text_ohne_nl = str_replace ("\n", "",$_REQUEST['text']);
Und auf die Variable $text_ohne_nl soll noch die Funktion trim() angewendet werden, damit die Leerzeichen am Anfang und Ende entfernt werden.
<?php
$beitraege = array();
beitrag_schreiben();
beitraege_einlesen();
function beitrag_schreiben($datei = "beitraege.txt")
{
if (!empty($_REQUEST['text']))
{
$dh = fopen($datei, "a");
[color=#800000]$text_ohne_nl = str_replace("\n","",$_REQUEST['text']);
$text_ohne_nl = trim ($_REQUEST['text']);[/color]
if (!$dh)
{
print "Kann Datei nicht erstellen!\n";
}
else
{
fputs($dh, [color=#BF0000]$text_ohne_nl[/color])."\n";
if (!empty($_REQUEST['autor']))
{
fputs ($dh, $_REQUEST['autor']);
}
else
{
fputs ($dh, "unbekannt\n");
}
fclose ($dh);
}
}
}
function beitraege_einlesen($datei = "beitraege.txt")
{
global $beitraege;
$dh = fopen($datei, "r");
if(!$dh)
{
print "Kann Datei \"$datei\" nicht öffnen!\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 "Eintrag: ".$beitrag['text']."\n";
print "<br>";
print "Autor: ".$beitrag['autor']."\n";
}
function formular_ausgeben()
{
?>
<form method="POST" action="<?php print $_SERVER['PHP_SELF'] ?>">
<b>Text: </b><textarea name="text" cols="50" rows="10"></textarea>
<br />
<b>Autor: </b><input type="text" name="autor"/>
<br />
<input type="submit" value="absenden"/>
</form>
<?php
}
?>
Alles anzeigen
Habe die Funktionen schon versucht einzubauen, aber irgendwie klappt das nicht....
Denn nun springen meine gemachten eingaben hin und her.
Wenn ich bspw.
Hallo ihr alle ---- im Textfeld eingebe und
ich ---- beim Namen.....
erscheint als Ausgabe, die ja direkt unterhalt des Formulars ist....
Nachricht: Halloihralleich
Name: KOMMT GAR NICHTS
beim zweiten Versuch dann dasselbe. Nur anders ..bspw.
Nachricht: Halloihralleichwiederich
Name: zweitenachricht
Blicke da nimmer durch...hoffe mir kann jemand helfen und ich habe niemanden überrumpelt
Mit freundlichem Gruß
Kadey