Hi,
ich wollte mir mit hilfe von PHP ein Gästebuch erstellen;
Und zwar wollte ich alles in einer Textdatei speichern;
Das hat auch alles so geklappt, wie ich es wollte, nur wenn ich das jetzt teste und schreibe einen Eintrag, dann wird der alte immer gelöscht;
Was kann ich da machen?
ich wollte mir mit hilfe von PHP ein Gästebuch erstellen;
Und zwar wollte ich alles in einer Textdatei speichern;
Das hat auch alles so geklappt, wie ich es wollte, nur wenn ich das jetzt teste und schreibe einen Eintrag, dann wird der alte immer gelöscht;
Was kann ich da machen?
Hm, ich habe es auch so geschrieben, jedoch funktioniert es nicht;
So sieht des bei mir aus:
$datei = fopen("gaestebuch.txt","w+");
fputs($datei,$eintrag);
fclose($datei);
So sieht des bei mir aus:
$datei = fopen("gaestebuch.txt","w+");
fputs($datei,$eintrag);
fclose($datei);
Juhu, soweit so gut;
Jetzt hab ich nur noch ein einziges Problem:
Wie kann ich in PHP eine Sichtbare Tabelle machen?
Jetzt hab ich nur noch ein einziges Problem:
Wie kann ich in PHP eine Sichtbare Tabelle machen?
mmhh. deine wersion ist etwas kurz!
wenn du willst, poste ich dir n gb!
wenn du willst, poste ich dir n gb!
ok:
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">Dein Kommentar:<br>
<textarea cols="55" rows="4" wrap="soft" name="comment"></textarea><br>
Dein Name:<br>
<input type="text" name="name"><br>
Deine E-Mail-Adresse:<br>
<input type="text" name="Email">
<input type="hidden" name="uw" value="<?php echo time(); ?>">
<input type="submit" value="Eintragen"></form>
<h3>Bisherige Meinungen:</h3>
<!--
<?php
function no_reload() {
$gleichheit=false;
if (isset($_POST["uw"])) {
$datei="unique.txt";
$fp=fopen($datei,"r+");
$aw=fgets($fp,30);
if ($aw==$_POST["uw"]) {
$gleichheit=true;
}
rewind($fp);
fputs($fp,$_POST["uw"]);
fclose($fp);
}
return $gleichheit;
}
$unique=no_reload();
// Dateiname in Variable speichern
$datei="comment.txt";
$Email=$_POST["Email"];
$name=$_POST["name"];
$comment=$_POST["comment"];
// Variable Kommentar gesetzt? Name und E-Mail nicht leer?
if (!empty($comment) && !empty($name) && !empty($Email) && !$unique) {
// Datei wird im Lese- und Schreib-Modus geöffnet
$fp=fopen($datei,"r+");
// alte Daten herauslesen und in $old sichern
$old=fread($fp,filesize($datei));
// E-Mail-Link entsteht
$name="<a href='mailto:$Email'>$name</a>";
// Datum ermitteln und formatieren
$datum=date("j.n.Y");
$clock=date("H:i:s");
// HTML-Zeichen maskieren, Slashes entfernen, Zeilenumbrüche erhalten
$comment=htmlspecialchars($comment);
$comment=stripslashes($comment);
$comment=nl2br($comment);
// Meinung zusammensetzen
$meinung="<p><b>$name</b> schrieb am " .
"<i>$datum um $clock</i>:<br>$comment</p>\n";
// Dateizeiger marschiert an den Anfagn
rewind($fp);
// neue Meinung vor alte in Datei schreiben
fputs($fp,"$meinung \n $old");
// Datei schließen
fclose($fp);
}
echo "-->";
readfile("comment.txt");
?>
du musst die datei "unique.txt" und die datei "comment.txt" machen! viel spaß damit!
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">Dein Kommentar:<br>
<textarea cols="55" rows="4" wrap="soft" name="comment"></textarea><br>
Dein Name:<br>
<input type="text" name="name"><br>
Deine E-Mail-Adresse:<br>
<input type="text" name="Email">
<input type="hidden" name="uw" value="<?php echo time(); ?>">
<input type="submit" value="Eintragen"></form>
<h3>Bisherige Meinungen:</h3>
<!--
<?php
function no_reload() {
$gleichheit=false;
if (isset($_POST["uw"])) {
$datei="unique.txt";
$fp=fopen($datei,"r+");
$aw=fgets($fp,30);
if ($aw==$_POST["uw"]) {
$gleichheit=true;
}
rewind($fp);
fputs($fp,$_POST["uw"]);
fclose($fp);
}
return $gleichheit;
}
$unique=no_reload();
// Dateiname in Variable speichern
$datei="comment.txt";
$Email=$_POST["Email"];
$name=$_POST["name"];
$comment=$_POST["comment"];
// Variable Kommentar gesetzt? Name und E-Mail nicht leer?
if (!empty($comment) && !empty($name) && !empty($Email) && !$unique) {
// Datei wird im Lese- und Schreib-Modus geöffnet
$fp=fopen($datei,"r+");
// alte Daten herauslesen und in $old sichern
$old=fread($fp,filesize($datei));
// E-Mail-Link entsteht
$name="<a href='mailto:$Email'>$name</a>";
// Datum ermitteln und formatieren
$datum=date("j.n.Y");
$clock=date("H:i:s");
// HTML-Zeichen maskieren, Slashes entfernen, Zeilenumbrüche erhalten
$comment=htmlspecialchars($comment);
$comment=stripslashes($comment);
$comment=nl2br($comment);
// Meinung zusammensetzen
$meinung="<p><b>$name</b> schrieb am " .
"<i>$datum um $clock</i>:<br>$comment</p>\n";
// Dateizeiger marschiert an den Anfagn
rewind($fp);
// neue Meinung vor alte in Datei schreiben
fputs($fp,"$meinung \n $old");
// Datei schließen
fclose($fp);
}
echo "-->";
readfile("comment.txt");
?>
du musst die datei "unique.txt" und die datei "comment.txt" machen! viel spaß damit!
Ja, ich habe ihn schon abgeändert.
Ist jetzt nach dem if els Prinzip;
Allerdings habe ich da immernoch des gleiche Prob, wie auch bei meinem alten Script, wenn ich den Befehl für eine Tabelle eingebe: <table border="1">
Dann kommt eine Fehlermeldung für diese Zeile.
Gibt es für PHP einen anderen Befehl als bei HTML?
Ist jetzt nach dem if els Prinzip;
Allerdings habe ich da immernoch des gleiche Prob, wie auch bei meinem alten Script, wenn ich den Befehl für eine Tabelle eingebe: <table border="1">
Dann kommt eine Fehlermeldung für diese Zeile.
Gibt es für PHP einen anderen Befehl als bei HTML?
Der Fehler erscheint, weil du wohl echo ""; für die Ausgabe der HTML-Befehle nutzt. Wenn du aber den auszugebenden Text mit Anführungszeichen eingrenzt und im Text selbst Anführungszeichen vorkommen, führt das logischerweise zu Konflikten.
Ich würde die PHP Ausführung einfach über ?> schließen und dann den HTML-Code ausführen. Danach kann man mit <?php die PHP-Ausführung wieder beginnen.
Wenn du aber die HTML-Befehle unbedingt per echo ausgeben willst oder Anführungszeichen im echo Befehl erforderlich sind, füge einfach vor den Anführungszeichen im Text jeweils einen Backslash ein ( also wird aus " -> \").
Ich würde die PHP Ausführung einfach über ?> schließen und dann den HTML-Code ausführen. Danach kann man mit <?php die PHP-Ausführung wieder beginnen.
Wenn du aber die HTML-Befehle unbedingt per echo ausgeben willst oder Anführungszeichen im echo Befehl erforderlich sind, füge einfach vor den Anführungszeichen im Text jeweils einen Backslash ein ( also wird aus " -> \").
oder du machst anstatt dem " (Gänsefüschen) ein ' (Apostrof)!
das müsste auch gehn! der script ist natürlich nicht mein bester, weil ich keine zeit hatte!
das müsste auch gehn! der script ist natürlich nicht mein bester, weil ich keine zeit hatte!
Hm, ich habe den Befehl nicht als echo"";
Ich wollte den Befehl verwenden, um die Einträge, die ins Gästebuch eingetragen werden zu speichern;
Mein momentan funktionierender Text lauted:
$meinung="
<table>
<tr>
<td>$name $datum $clock</td>
</tr>
<tr>
<td><a href=\"$http\">$http</a></td>
</tr>
<tr>
<td>$comment</td>
</tr>
<tr>
<td>Kommentar:</td>
</tr><br></br><br></br>
</table>\n";
Allerdings möchte ich gerne eine sichtbare Linie bei der Tabelle haben und wollte daher den HTML Befehl verwenden; Kenne mich nur leider in Sachen PHP nicht wirklich gut aus.
Ich wollte den Befehl verwenden, um die Einträge, die ins Gästebuch eingetragen werden zu speichern;
Mein momentan funktionierender Text lauted:
$meinung="
<table>
<tr>
<td>$name $datum $clock</td>
</tr>
<tr>
<td><a href=\"$http\">$http</a></td>
</tr>
<tr>
<td>$comment</td>
</tr>
<tr>
<td>Kommentar:</td>
</tr><br></br><br></br>
</table>\n";
Allerdings möchte ich gerne eine sichtbare Linie bei der Tabelle haben und wollte daher den HTML Befehl verwenden; Kenne mich nur leider in Sachen PHP nicht wirklich gut aus.
@Menlow
Ich habe auch nur aussschnitte aus dem script verwendet; Da ich wie gesagt lieber mit if und else das script erstellen wollte;
Ich habe auch nur aussschnitte aus dem script verwendet; Da ich wie gesagt lieber mit if und else das script erstellen wollte;
Ja, dein Script funktioniert, jedoch habe ich nur Teile davon in ein eigenes eingebunden;
Dein Tipp mit dem ' statt " war sehr gut!!!
Dein Tipp mit dem ' statt " war sehr gut!!!
Logge dich ein um einen Beitrag zu schreiben.