Hallo Matthias,
Sorry das ich so ein bischen dumm Frage:
Das Skript soll doch nur Daten eintragen oder?
<?php
if ((isset($Name) && isset($Name)) && (chop($Mail) != "" && chop($Mail) != "") && (chop($Text) != "" && chop($Text) != ""))
Jut verstanden.. bis auf den doppelten $text
$dateiname = "gaestebuch.txt";
$daten = file($dateiname);
Warum liest Du die Daten an der Stelle ein?
$Text = implode (" ", $Text);
#§ durch html-character ersetzen
$Text = ereg_replace("§","§",$Text);
$Mail = ereg_replace("§","§",$Mail);
$Name = ereg_replace("§","§",$Name);$timestamp = time(); //Zeit setzen
$datum = date("d.m.Y", $timestamp);
$zeit = date("H:i", $timestamp);#String zusammensetzen und an erste Stelle von Daten bringen
$resultat[0] = $Name . "§" . $Mail . "§" . $datum . "§" . $zeit . "§" . $Text . "\n"; //Korrekt
Ab hier denke ich sitzt das Problem.
Ich würde um die Sache zu vereinfachen die Daten hinten dran schreiben und bei der Ausgabe das Array mit revers umdrehen.
Ich glaube in der folgenden for Schleife liegt Dein Problem meiner Ansicht nach in dem $resulat $resultat[$x +1] = $daten[$x];
Kann mich aber auch irren.
for($x=0; $x < count($daten); $x++)
{
$resultat[$x +1] = $daten[$x];
}
#In Datei schreiben
$resultat = implode("", $resultat);
Außerdem finde ich komisch das Du mit $resultat implode () weiterarbeitest.
Erst hast Du ein Array dass wandelst Du in einen String um?
Warum ?
Warum nicht einfach den String hinten ran klatschen?
Also wie gesagt:
$eintrag = $Name . "§" . $Mail . "§" . $datum . "§" . $zeit . "§" . $Text . "\n";
$filehandle = fopen($dateiname, "w");
fwrite($filehandle, $eintrag);
echo "<center>Eintragung erfolgreich!<br></center>";
echo "<center><a href='../../View.php?content=gaestebuch/gaestebuch.php'>Zurück</a></center>";
Das müßte gehen und dann die Ausgabe formatieren.
Ich hoffe ich konnte Dir wenigstens ein bischen weiterhelfen.
Viele Grüße aus Berlin
TomIRL