Bitte um Hilfe - Gästebuch
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angabe
ausgabe
besucher
code
date
datei
datum
eintrag
email
erfolgreich gespeichert back
feld
fenster
file
inhalt
jemand
pfad
target
url
zeigen
zerlegen
-
Hallo, ich verstehe nur sehr, sehr wenig von PHP.
Habe hier ein script. Der Besucher kann da Angaben zum Namen, Email + Nachricht hinterlassen. Und ich möchte noch das Eingabefenster mit den Angaben zur Homepage des Besuchers anbieten. Ich weiß aber leider nicht wie das geht. HTML ist kein Problem aber php schon. Würde mich freuen wenn jemand mir helfen würde. Wie kann man in php noch eine Variable mit dem Eingabefenster „Homepage “ einfügen und wie kann man es dann in der txt. Datei abspeichern bzw. auch ausgeben.
Vielen Dank im Voraus
Hier ist noch der Inhalt der beiden php-Seiten
gaestebuch.php
<html> <head> <title>Gästebuch</title> <style> <!-- body { margin: 0; background-color: #C9CCBF; } A:link {text-decoration: none;color: #7A7E4B;} A:visited {text-decoration: none;color: ##7A7E4B;} A:active {text-decoration: none;color: #B1B463;} A:hover {text-decoration: none;color:#B1B463;} --> </style> <div align="center"><br> <br> <form action="neuerbeitrag.php" Method="post"> <strong>Name:</strong><br> <input name="Name" size="40"><br><br> <strong>E-Mail:</strong><br> <input name="EMail" size="40"><br> <br> <strong>Comments:</strong><br> <textarea name="inhalt" cols="40" rows="12" wrap="physical"></textarea><br> <input type="submit" value="Absenden"> </form> <hr> </div> <?php $beitrag = file("gaestebuch.txt"); krsort($beitrag); foreach($beitrag as $ausgabe) { $ausgabe = stripslashes($ausgabe); $zerlegen = explode("|", $ausgabe); echo " <table align=\"center\" border=\"1\" cellspacing=\"0\" cellpadding=\"5\" bordercolorlight=\"black\" bordercolordark=\"black\" width=\"50%\"> <tr> <td> Von <a href=\"mailto:$zerlegen[0]\">$zerlegen[1]</a> am $zerlegen[2] </td> </tr> <tr> <td> $zerlegen[3] </td> </tr> </table><br> "; } ?>
neuerbeitrag.php
<html> <head> <title>Gästebuch - Speichere Beitrag</title> </head> <body> <?php $user = $_POST["Name"]; $user = htmlentities($user); $inhalt = $_POST["inhalt"]; $inhalt = htmlentities($inhalt); $inhalt = str_replace("\n", "<br>", $inhalt); $email = $_POST["EMail"]; $email = htmlentities($email); if ($inhalt == "" or $user == "") { echo "Sie müssen das Feld \"Namen\" und \"Inhalt\" ausfüllen"; } else { $datum= date("d.m.Y H:i:s"); $eintrag="$email|$user|$datum|$inhalt"; $datei = fopen("gaestebuch.txt", "a"); fwrite($datei, "\n".$eintrag); fclose($datei); echo "Ihr Eintrag wurde erfolgreich gespeichert"; } ?> <br> <a href="gaestebuch.php">back to homepage</a> </body> </html>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
gaestebuch.php
<html> <head> <title>Gästebuch</title> <style> <!-- body { margin: 0; background-color: #C9CCBF; } A:link {text-decoration: none;color: #7A7E4B;} A:visited {text-decoration: none;color: ##7A7E4B;} A:active {text-decoration: none;color: #B1B463;} A:hover {text-decoration: none;color:#B1B463;} --> </style> </head> <body> <div align="center"><br> <br> <form action="neuerbeitrag.php" Method="post"> <strong>Name:</strong><br> <input name="name" size="40"><br><br> <strong>E-Mail:</strong><br> <input name="email" size="40"><br> <br> <strong>Homepage:</strong><br> <input name="homepage" size="40"><br> <br> <strong>Comments:</strong><br> <textarea name="inhalt" cols="40" rows="12" wrap="physical"></textarea><br> <input type="submit" value="Absenden"> </form> <hr> </div> <?php $beitrag = file("gaestebuch.txt"); krsort($beitrag); foreach($beitrag as $ausgabe) { $ausgabe = stripslashes($ausgabe); $zerlegen = explode("|", $ausgabe); echo " <table align=\"center\" border=\"1\" cellspacing=\"0\" cellpadding=\"5\" bordercolorlight=\"black\" bordercolordark=\"black\" width=\"50%\"> <tr> <td> Von <a href=\"mailto:$zerlegen[0]\">$zerlegen[1]</a> <a href=\"$zerlegen[2]\">Homepage</a> am $zerlegen[3] </td> </tr> <tr> <td> $zerlegen[4] </td> </tr> </table><br> "; } ?> </body> </html>
neuerbeitrag.php
<html> <head> <title>Gästebuch - Speichere Beitrag</title> </head> <body> <?php $user = $_POST["name"]; $user = htmlentities($user); $inhalt = $_POST["inhalt"]; $inhalt = htmlentities($inhalt); $inhalt = str_replace("\n", "<br>", $inhalt); $email = $_POST["email"]; $email = htmlentities($email); $homepage = $_POST["homepage"]; $homepage = htmlentities($homepage); if ($inhalt == "" or $user == "") { echo "Sie müssen das Feld \"Namen\" und \"Inhalt\" ausfüllen"; } else { $datum= date("d.m.Y H:i:s"); $eintrag="$email|$user|$homepage|$datum|$inhalt"; $datei = fopen("gaestebuch.txt", "a"); fwrite($datei, "\n".$eintrag); fclose($datei); echo "Ihr Eintrag wurde erfolgreich gespeichert"; } ?> <br> <a href="gaestebuch.php">back to homepage</a> </body> </html>
Ist ungetestet. Und der Code ist alles andere als schön/elegant ... sollte aber funktionieren. ;)
Vlt hat ja jemand Lust das noch weiter aufzubessern. -
Vielen Dank!!!
Es funktioniert!
PS.
Bist noch so nett mir zu zeigen, wie sich die Homepage Links in einem neuen Fenster öffnen lassen.
Also ich meine das, was man in HTML so ausdrückt:
target="_blank"
Habe versucht das in dem code einzufügen, scheit aber so nicht zu gehen.
Vielen Dank
LG
Papalagi
-
papalagi schrieb:
...
PS.
Bist noch so nett mir zu zeigen, wie sich die Homepage Links in einem neuen Fenster öffnen lassen.
Also ich meine das, was man in HTML so ausdrückt:
target="_blank"
Habe versucht das in dem code einzufügen, scheit aber so nicht zu gehen.
...
Gerne doch. :)
Von <a href=\"mailto:$zerlegen[0]\">$zerlegen[1]</a> <a href=\"$zerlegen[2]\">Homepage</a>
mit
Von <a href=\"mailto:$zerlegen[0]\">$zerlegen[1]</a> <a href=\"$zerlegen[2]\" target=\"_blank\">Homepage</a>
ersetzen
Wie du siehst muss man in diesem Fall die doppelten Anführungszeichen escapen. Dazu wird \ (Backslash) verwendet.
Beitrag zuletzt geändert: 25.11.2011 12:15:43 von philippkern -
Vielen Dank für deine Hilfe!
Es funktioniert.
Bin sehr froh, dass du so hilfsbereit bist
-
Hallo philippkern und papalagi,
habe mir erlaubt euer php-skript zu benutzen.
funktioniert soweit.
Kann einer von Euch mir den schreiben warum ich wenn ich einen eintrag ins gästebuch auf meiner homepage mache den Eintrag dort und auch nicht im gaestebuch.txt sehe ?
MfG Frank -
Hallo Frank,
das liegt evtl. daran, das der Pfad zur Datei fehlerhaft ist oder an den Dateiattributen. Sprich dein Script hat auf diese Datei keine Schreibrechte.
Diese musst du auf 664 (oder auch 666) ändern (Besitzer und Gruppe brauchen Schreibrechte).
Wenn du FileZilla benutzt, kannst du durch einen Rechtsklick auf diese Datei die Dateiattribute setzen.
MFG Micha -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage