Eigenes Gästebuch

Diskutiere Eigenes Gästebuch im Web & Grafik Forum im Bereich Internet & Telekomunikation Forum; Hallo, ich habe nach einem Tutorial im Internet ein Gästebuch erstellt, allerdings funktioniert es nicht wirklich. Wenn ich auf den Button...
  • Eigenes Gästebuch Beitrag #1
B

^bart

Bekanntes Mitglied
Dabei seit
07.11.2006
Beiträge
784
Reaktionspunkte
0
Hallo,
ich habe nach einem Tutorial im Internet ein Gästebuch erstellt, allerdings funktioniert es nicht wirklich. Wenn ich auf den Button abschicken klicke, dann macht er keinen Eintrag im Gästebuch, was ist an dem Code falsch?

Das ist die Datei zum Eintragen der Daten wie Name, Email etc.
<html>
<head>
<title>Gästebuch</title>
</head>
<body>

<?php
if ($action == "add"){

if ($name == "" || $mail == "" || $text == ""){
echo "<b>Du hast nicht alle Felder ausgefüllt!</b><br>";
echo Klicke auf den Backbutton deines Browsers";
}
else{

if ($www == ""){
$eintrag = "<a href=\"mailto:$mail\">$name</a><br>$text";

}
else{
$eintrag = "<a href=\"mailto:$mail\">$name</a>

<br><a href=\"$www\">$www</a>$text<hr><br><br>";
}

$datei = fopen("gaestebuch.txt","w+");
fputs($datei,$eintrag);
fclose($datei);
echo "Danke <i>$name</i> für deinen Eintrag";

}

}
else{
?>

<form action="eintragen.php?action=add" method="get">
&nbsp; &nbsp Name: <input type="text" name="name" size="24"><br>
E-Mail: <input type="text" name="mail" size="24"><br>
Homepage: <input type="text" name="www" size="24"><br>
<br>
Dein Eintrag: <br>
<textarea name="text" cols="35" rows="5"></textarea><br>
<input type="button" value="Abschicken" name="OK" />
</form>

<?php
}
?>

</body>
</html>

Das hier ist die Datei wo man später die geschriebenen Einträge sehen soll:

<html>
<head>
<title>Eintragen</title>
</head>
<body>

<b>Mein Gästebuch</b><br>
<a href="http://tomilla.to.funpic.de/eintragen.php">Hier</a> kannst du dich eintragen<br>
<br>

<?php
include("gaestebuch.txt");
?>

</body>
</html>

Also eigentlich sollte es so funktionieren, dass die Daten, die im 1. Script eingegeben werden in der Textdatei gaestebuch.txt gespeichert werden und dann eben im 2. Script aus der Textdatei abgerufen werden.

Das mit dem Abrufen funktioniert auch soweit, ich habe einfach mal selbst etwas direkt in die Textdatei geschrieben und das wurde dann auch bei dem 2. Script angezeigt, also so wie es sein sollte.
Schreibe ich aber etwas in das Formular, für das das 1. Script da ist,( also so wie es auch Besucher machen müssten ) und drücke ich dann auf abschicken, dann passiert gar nichts.
Wo liegt der Fehler, oder wie kann ich das Script verändern, damit es funktioniert?
 
  • Eigenes Gästebuch Beitrag #2
F

fixxing_bob

Bekanntes Mitglied
Dabei seit
24.10.2006
Beiträge
901
Reaktionspunkte
0
Schreib an Anfang des Script
PHP:
error_reporting(E_ALL);

Hat die Datei den richtigen CHMOD? (777 sollte es sein)
 
  • Eigenes Gästebuch Beitrag #3
B

^bart

Bekanntes Mitglied
Dabei seit
07.11.2006
Beiträge
784
Reaktionspunkte
0
Wenn ich deinen php-Code an den Anfang schreibe, dann erscheint die Medlung:

Undefined variable [...] on line 9,

was ist denn dort falsch ( ich habe das beim 1. Script gemacht ).
Klar eine undefinierte Variable, aber als was muss diese Variable definiert werden?
Als das Textfeld für Name, Email etc.? oder wie?
 
  • Eigenes Gästebuch Beitrag #4
futtlui

futtlui

Bekanntes Mitglied
Dabei seit
21.01.2003
Beiträge
10.439
Reaktionspunkte
2
wieso Zeile 9 wenn Du es an den Anfang schreibst?
Die <?php mit eingerechnet sollte es eigentlich Zeile 2 sein.

Und wie sieht's denn mit dem CHMOD auf die gaestebuch.txt aus? (hat fixxing_bob schon gefragt)
 
  • Eigenes Gästebuch Beitrag #5
B

^bart

Bekanntes Mitglied
Dabei seit
07.11.2006
Beiträge
784
Reaktionspunkte
0
Also es stand dort das ein Fehler aufgetreten ist:

Undefined variable ( hier das Verzeichnis vom Funpicaccount ) on line 9

Was ist denn CHMOD?
 
  • Eigenes Gästebuch Beitrag #6
F

fixxing_bob

Bekanntes Mitglied
Dabei seit
24.10.2006
Beiträge
901
Reaktionspunkte
0
Wenn ich deinen php-Code an den Anfang schreibe, dann erscheint die Medlung:

Undefined variable [...] on line 9,

was ist denn dort falsch ( ich habe das beim 1. Script gemacht ).
Klar eine undefinierte Variable, aber als was muss diese Variable definiert werden?
Als das Textfeld für Name, Email etc.? oder wie?

Also 1. hast du bei
PHP:
echo Klicke auf den Backbutton deines Browsers";
ein " vergessen.

Hier ich hab es mal ein bisschen ausgebessert.

Quick&Dirty
PHP:
<html>
<head>
<title>Gästebuch</title>
</head>
<body>

<?php
if ($_GET['action'] == "add"){

if ($_POST['name'] == "" || $_POST['mail'] == "" || $_POST['text'] == ""){
echo "<b>Du hast nicht alle Felder ausgefüllt!</b><br>";
echo "Klicke auf den Backbutton deines Browsers";
}
else{

if ($_POST['www'] == ""){
$eintrag = "<a href=\"".mailto:$_POST['mail']."\">".$_POST['name']."</a><br>".$_POST['text'];

}
else{
$eintrag = "<a href=\"".mailto:$_POST['mail']."\">".$_POST['name']".</a>

<br><a href=\"".$_$_POST['www']."\">".$_POST['www']."</a>".$_POST['text']."<hr><br><br>";
}

$datei = fopen("gaestebuch.txt","w+");
fputs($datei,$eintrag);
fclose($datei);
echo "Danke <i>".$_POST['name']."</i> für deinen Eintrag";

}

}
else{
?>

<form action="eintragen.php?action=add" method="POST">
&nbsp; &nbsp Name: <input type="text" name="name" size="24"><br>
E-Mail: <input type="text" name="mail" size="24"><br>
Homepage: <input type="text" name="www" size="24"><br>
<br>
Dein Eintrag: <br>
<textarea name="text" cols="35" rows="5"></textarea><br>
<input type="button" value="Abschicken" name="OK" />
</form>

<?php
}
?>

</body>
</html>

// Zu deiner Frage:
Bei Wikipedia ist das gut erkärt
 
  • Eigenes Gästebuch Beitrag #7
futtlui

futtlui

Bekanntes Mitglied
Dabei seit
21.01.2003
Beiträge
10.439
Reaktionspunkte
2
CHMOD taucht sicher auch in dem Tutorial auf wo Du das Script herhast.
Und wegen Zeile 9 meinte ich, dass das eigentlich nicht sein kann, wenn Du den Befehl an den Anfang (beginnt ja mit Zeile 1) geschrieben hast.

Aber da wir über Funpic sprechen wird mir einiges klar - da ist halt manches anders...
 
  • Eigenes Gästebuch Beitrag #8
B

^bart

Bekanntes Mitglied
Dabei seit
07.11.2006
Beiträge
784
Reaktionspunkte
0
Danke erstmal für eure Hilfe, aber mit dem Code von fixxing_bob geht es immer noch nicht.

Wenn es euch hilft, das ist der Link zu dem Tutorial, ich habe eigentlich alles genau so gemacht wie es dort beschrieben war:

http://www.php-resource.de/tutorials/read/11/1/
 
  • Eigenes Gästebuch Beitrag #9
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Ich würde dir raten, das Skript mal auf deinem PC auszuprobieren. Dazu brauchst du nur einen kleinen Webserver (z.B. den Abyss) und eben PHP. Ich vermute übrigens ebenfalls stark, dass die Dateirechte nicht passen, oder dass bei Funpic die Dateifunktionen von PHP eingeschränkt sind.
Am besten eine Testdatei hochladen mit dem Inhalt <?php phpinfo(); ?>
Dort stehen dann sämtliche Konfigurationseinstellungen. Einfach mal nachsehen, was alles deaktiviert ist.
Nach der Zeile $datei = ... solltest du auch prüfen, ob die Datei geöffnet werden konnte, z.B. mittels
PHP:
if($datei==FALSE) {echo "FEHLER: Datei konnte nicht geöffnet werden!"; };
 
  • Eigenes Gästebuch Beitrag #10
futtlui

futtlui

Bekanntes Mitglied
Dabei seit
21.01.2003
Beiträge
10.439
Reaktionspunkte
2
Danke erstmal für eure Hilfe, aber mit dem Code von fixxing_bob geht es immer noch nicht.
Der war auch nicht gedacht, um es richtig laufen zu lassen, sondern um über Fehler zu berichten (was auch die Übersetzung von error reporting ist)
 
  • Eigenes Gästebuch Beitrag #11
F

fixxing_bob

Bekanntes Mitglied
Dabei seit
24.10.2006
Beiträge
901
Reaktionspunkte
0
So hab das jetzt mal überarbeitet:

PHP:
<html>
<head>
<title>Gästebuch</title>
</head>
<body>
<?php
///////////////////////////////////////////////////////////////////////


$location = "index.php"; //name der aktuellen datei

$file = "eintragen.txt"; //datei in die die einträge kommen


///////////////////////////////////////////////////////////////////////


chmod ($file, 0777);
if ($_GET['action'] == "add"){
if ($_POST['name'] == "" || $_POST['mail'] == "" || $_POST['text'] == ""){
echo "<b>Du hast nicht alle Felder ausgefüllt!</b><br>
Klicke auf den Backbutton deines Browsers";
}
else{

$www = nl2br(stripslashes(htmlspecialchars($_POST['www'])));
$mail = nl2br(stripslashes(htmlspecialchars($_POST['mail'])));
$name = nl2br(stripslashes(htmlspecialchars($_POST['name'])));
$text = nl2br(stripslashes(htmlspecialchars($_POST['text'])));
if ($www == ""){
$eintrag = "<a href=\"mailto:".$mail."\">".name."</a><br>".$text;

}
else{
$eintrag = "<a href=\"mailto:".$mail."\">".$name."</a>

<br>
<a href=\"".$www."\">
".$www."</a>".$text."<hr><br><br>";
}

$datei = fopen($file,"a+");
fputs($datei,$eintrag);
fclose($datei);
echo "Danke <i>".$name."</i> für deinen Eintrag";

}

}
else{
echo"
<form action=\"".$location."?action=add\" method=\"POST\">
<table border=\"0\">
<tr>
<td>
Name
</td>
<td>
<input type=\"text\" name=\"name\" size=\"24\">
</td>
</tr>
<tr>
<td>
E-Mail
</td>
<td>
<input type=\"text\" name=\"mail\" size=\"24\">
</td>
</tr>
<tr>
<td>
Homepage
</td>
<td>
<input type=\"text\" name=\"www\" size=\"24\">
</td>
</tr>
<tr>
<td>
Dein Eintrag
</td>
<td>
<textarea name=\"text\" cols=\"35\" rows=\"5\"></textarea>
</td>
</tr>
</table>
<input type=\"submit\" value=\"Eintragen\">
</form>
";
}
?>
</body>
</html>

Ein Filter für HTML-Code ist jetzt auch drin.
Hab es nei mir, auf meinen Funpicspace mit Erfolg getestet.
Hab gleich eine Funktion zum CHMOD mit eingebaut. Der CHMOD wird so automatisch vergeben.
Hoffe es klappt bei dir.
 
  • Eigenes Gästebuch Beitrag #12
B

^bart

Bekanntes Mitglied
Dabei seit
07.11.2006
Beiträge
784
Reaktionspunkte
0
Danke für eure Bemühungen,
ich habe mal das Script von fixxing_bob ausprobiert, wenn ich jetzt auf Eintragen klicke, dann öffnet sich nur diese Fehlerseite von Funpic, aber in die eintragen.txt wird nichts eingetragen.
 
  • Eigenes Gästebuch Beitrag #13
F

fixxing_bob

Bekanntes Mitglied
Dabei seit
24.10.2006
Beiträge
901
Reaktionspunkte
0
Danke für eure Bemühungen,
ich habe mal das Script von fixxing_bob ausprobiert, wenn ich jetzt auf Eintragen klicke, dann öffnet sich nur diese Fehlerseite von Funpic, aber in die eintragen.txt wird nichts eingetragen.

Hast du oben deine EInstellungen konfiguriert?

PHP:
$location = "index.php"; //name der aktuellen datei

$file = "eintragen.txt"; //datei in die die einträge kommen

$file ist dan gaestebuch.txt und $location ist eintragen.php

// hab das mal hochgeladen: http://fixxingbob.fi.funpic.de/gbook/
 
Zuletzt bearbeitet:
  • Eigenes Gästebuch Beitrag #14
B

^bart

Bekanntes Mitglied
Dabei seit
07.11.2006
Beiträge
784
Reaktionspunkte
0
Wie hast du es denn gemacht, dass wenn ich bei der index.php etwas eintrage und dann auf Eintragen klicke, die Seite kommt:
Danke für ihren Eintrag ...
Bei mir macht der dann nur diese 404-Errorseite von Funpic auf und schreibt nichts in die eintragen.txt
Oder habe ich etwas flasch gemacht.
Ich habe jetzt eine Seite, das ist die mit deinem Script, die eintragen.php, dann die eintragen.txt, in die die Forumlardaten vom 1. Script reinsollen und eine Seite, die zeigen.php, diese soll die Daten aus der eintragen.txt abrufen.
 
  • Eigenes Gästebuch Beitrag #15
F

fixxing_bob

Bekanntes Mitglied
Dabei seit
24.10.2006
Beiträge
901
Reaktionspunkte
0
In deinem Quelltext sethet
HTML:
<form action="index.php?action=add" method="POST">

Das muss bei dir ja eintragen.php sethen. Dh. du hast die $location nicht verändert.
So muss es für dich aussehen:

PHP:
///////////////////////////////////////////////////////////////////////


$location = "eintragen.php"; //name der aktuellen datei

$file = "eintragen.txt"; //datei in die die einträge kommen


///////////////////////////////////////////////////////////////////////
 
  • Eigenes Gästebuch Beitrag #16
B

^bart

Bekanntes Mitglied
Dabei seit
07.11.2006
Beiträge
784
Reaktionspunkte
0
Danke fixxing_bob, nun funktioniert es.
 
  • Eigenes Gästebuch Beitrag #17
F

fixxing_bob

Bekanntes Mitglied
Dabei seit
24.10.2006
Beiträge
901
Reaktionspunkte
0
Danke fixxing_bob, nun funktioniert es.

Das ist schön.
Natürlich ist das Gästebuch jetzt noch nicht sicher, deswegen würde ich es nicht verwenden (vom Design ganz zu schweigen:D).
Ich würde für ein Gästebuch generell lieber mit MySQL benutzen, als txt Dateien zu nehmen.
 
  • Eigenes Gästebuch Beitrag #18
B

^bart

Bekanntes Mitglied
Dabei seit
07.11.2006
Beiträge
784
Reaktionspunkte
0
Das ist schön.
Natürlich ist das Gästebuch jetzt noch nicht sicher, deswegen würde ich es nicht verwenden (vom Design ganz zu schweigen:D).
Ich würde für ein Gästebuch generell lieber mit MySQL benutzen, als txt Dateien zu nehmen.

Ja das stimmt wohl, aber mir reicht es für den Anfang, das mit dem Design kann man ja noch machen, aber das Grundgerüst steht zum Glück jetzt schon.
 
Thema:

Eigenes Gästebuch

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.181
Beiträge
1.579.175
Mitglieder
55.880
Neuestes Mitglied
Hahn
Oben