Hallo,
ich beschäftige mich erst seit kurzer Zeit mit PHP und habe nun versucht ein Gästebuch(ohne Datenbanken) zu erstellen.
Der ganze untere PHP wird als action eines Formulars aufgerufen , dass die Werte per post übergibt.
Das Ganze produziert auch keine Fehlermeldung, oder ähnliches, von daher vermute ich , dass es sich um einen Fehler
bei str_replace handelt.
Die Variablen $inhalt und $eintrag stimmen genau, nur das Schreiben in die andre Datei funktioniert nicht.
Der Zugriff auf die Datei ist aber gewährleistet, und es wird auch im Editor gefragt ob neu geladen werden soll,
weil von draußen darauf zugegriffen wird. Nur ändert sich der Inhalt nicht..
Und die Ausgabe von $ersetzen scheint fehlerhaft zu sein....
Hier einmal der Code:
<?php
//Prüfen ob Werte angekommen
if (isset($_POST['name'])&& isset($_POST['email']) && isset($_POST['kommentar']))
//falls ja , Werte in Variablen speichern
{
$name = $_POST['name'];
$email = $_POST['email'];
$kommentar = $_POST['kommentar'];
//Datum und Uhrzeit generieren
$datum= date("d.m.Y");
$zeit = date("H:i:s");
//Jetzt neuen Eintrag im Gästebuch erzeugen
// <!--Beginn--> dient als Platzhalter im HTML-Dokument
//dort wird später der Beitrag eingefügt
$eintrag= '<!--Beginn-->\n' . '<div class="kommentar">' . '\n<strong>Name: </strong>';
$eintrag.= $name;
$eintrag.= '<br>\n' . '<strong>Email: </strong><a href="mailto: "';
$eintrag.= $email;
$eintrag.= '>' .$email . '</a><br><br>\n<strong> Datum: </strong>';
$eintrag.= $datum. ' um ' . $zeit;
$eintrag.= '<br>\n<strong> Kommentar: </strong>';
$eintrag.= $kommentar;
$eintrag.= '<br><br><br></div>';
//Jetzt Gästebuch-Datei laden
$bol = file_exists("start.php");
//prüft, ob die Datei existiert
if ($bol) {
$datei = fopen("start.php", "r");
//prüft ob Datei geöffnet werden konnte,
//öffnet diese im Lesemodus und
//speichert den Inhalt in einer Variable
if ($datei) {
$dateigroesse = filesize("start.php");
//speichert den Inhalt der Datei
$inhalt = fread($datei, $dateigroesse);
//schließt die Datei wieder
fclose($datei);
} //Dateiöffnung
//neuen Eintrag an der Platzhalterposition einfügen
$ersetzen= str_replace("<!--Begin-->", $eintrag, $inhalt);
} //Existenzüberprüfung
//aktuallisiertes Gästebuch schreiben
$bol = file_exists("start.php");
//prüft ob Datei existiert
if ($bol) {
$datei = fopen("start.php", "w");
//prüft ob Datei geöffnet werden konnte,
//öffnet dies im Schreibmodus und
//ändert den Inhalt
if ($datei) {
//Inhalt ändern
fwrite($datei, $ersetzen);
fclose($datei);
echo "Vielen Dank für ihren Eintrag.";
echo '<a href="start.php">Klicken sie hier um zum Gästebuch zurückzukehren.</a>';
} //Dateiöffnung
} //Existenzüberprüfung
}
else
{
//falls nein, Fehlermeldung
echo "Deine Eingaben konnten leider nicht gespeichert werden.";
echo '<a href="start.php">Klicken sie hier um zum Formular zurückzukehren.</a>';
}
echo $inhalt; //funktioniert
echo $eintrag; //funktioniert auch
?>
Alles anzeigen
Hoffe ihr könnt mir da ein wenig weiterhlefen
mfg Nita