PHP (Programmieren)

PHP (Programmieren)

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?

mit "fputs($fp,"$kommentar");"

und nicht mit "fgets(bla bla bla);"
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);
http://de.php.net/manual/de/function.fopen.php

Verwende als Modus nicht "w+", sondern "a".
Juhu, soweit so gut;

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!
Wäre wirklich super!!!
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! Smiley viel spaß damit!
Vielen, vielen Daknk!!! Smiley

Werde ich nachher mal ausprobieren;
ok, aber ganz so voreilig brauchste auch net sein! Smiley
und, geht der script??
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?
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 " -> \").
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! Smiley
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 &nbsp;&nbsp;&nbsp; $datum&nbsp;&nbsp;&nbsp;$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;
@Menlow
so funktionierts.

Danke
@all
also geht meine version, oder wie????? Smiley
Ja, dein Script funktioniert, jedoch habe ich nur Teile davon in ein eigenes eingebunden;

Dein Tipp mit dem ' statt " war sehr gut!!!
ok
ich hab mal ne frage, und ich dachte, ihr findet es nicht so gut, wenn ich extra noch ein thread dafür auf mache! also:

Mit welchem PHP-Befehl kann man dateien erstellen?
Logge dich ein um einen Beitrag zu schreiben.