Hi,
Was muss ich da machen und was brauche ich dazu?
Einen Server auf dem du ein solches Gästebuchprogramm ausführen lassen kannst, und natürlich das Gästebuchprogramm selbst.
Das ist natürlich richtig, aber vielleicht etwas abstrakt... Also ich kenne mich zwar nicht sehr aus, aber will das, was ich weiß (oder glaube zu wissen) hier doch mal posten:
Also auf jeden Fall muss dein Hosting-Paket eine Skriptsprache wie z. B. PHP, Perl, ASP usw. beherrschen. Ich persönlich bevorzuge PHP, da es besonders flexiben und einfach zu erlernen ist.
Ein kleines PHP-Skript habe ich einmal für ein einfaches Gästebuch erstellt, das zwar keine Einträge nach Seiten sortieren kann, aber dafür z. B. HTML-Code herausfiltern kann. Erläuternde Kommentare füge ich mit
// am Zeilenanfang ein. An diesem einfachen Beispiel kannst du die Funktionsweise (hoffentlich) ein wenig verstehen lernen und irgendwann auch umfangreichere Projekte erstellen...
<?
// Hier gibst du den Dateinamen auf dem Server ein, in dem die Einträge gespeichert werden. Die Datei muss vorhanden und beschreibbar sein.
$filename="./guestbook.txt";
// Hier definiere ich Variabeln für Datum und Uhrzeit.
$date=strftime("%d. %m. %Y");
$time=strftime("%H:%M");
// Hier fragt die PHP-Datei die vom Formular beim Aschicken übermittelten Daten ab.
if(isset($_POST['text']) && $_POST['text'] <> "")
{
if(isset($_POST['name']) && $_POST['name'] <> "")
{
if(isset($_POST['email']) && $_POST['email'] <> "")
{
// Dies ist die Zeile, die in die guestbook.txt (oder eine andere, in $filename definierte Datei) eingetragen wird, wenn Text, Name und eMail-Adresse eingegeben wurden.
$line="<br />\n<br />\n<h4>\n <strong>" . nl2br(htmlentities($_POST['name'])) . "</strong> (<a href="mailto:" . nl2br(htmlentities($_POST['email'])) . "" title="Eine eMail an " . nl2br(htmlentities($_POST['email'])) . " senden">eMail</a>) schrieb am " . $date. " um " . $time . ":\n</h4>\n" . nl2br(htmlentities($_POST['text'])) . "\n\n";
}
else
{
// Dies ist die Zeile, die in die guestbook.txt (oder eine andere, in $filename definierte Datei) eingetragen wird, wenn Text und Name, aber nicht die eMail-Adresse eingegeben wurden.
// Die Funktion nl2br macht aus einfachen Zeilenumbrüchen (X)HTML-Zeilenumbrüche (<br />), die Funktion htmlentities macht aus & &, aus " ", aus ä ä, aus ß ß usw.
$line="<br />\n<br />\n<h4>\n <strong>" . nl2br(htmlentities($_POST['name'])) . "</strong> schrieb am " . $date. " um " . $time . ":\n</h4>\n" . nl2br(htmlentities($_POST['text'])) . "\n\n";
}
}
else
{
// Diese Zeile wird auf dem Bildschirm ausgegeben, wenn der Besucher zwar Text (und evtl. eMail-Adresse), aber keinen Namen angegeben hat.
echo "<h4>Fehler</h4>\nSie haben keinen Namen angegeben. <a href="javascript:history.back();" title="Zurück zu Ihrer Eingabe im Formular (erfordert JavaScript)">Bitte holen Sie dies nach!</a><br /><br />\n";
$line="";
}
// Hier erfolgt der Schreibvorgang in die Datei
$file=fopen($filename, "a");
if($file)
{
fputs($file, $line);
fclose($file);
}
}
if(file_exists($filename))
{
$file=fopen($filename, "r");
if($file)
{
while($line=fgets($file, 255))
{
echo stripslashes($line);
}
fclose($file);
}
}
?>
<br />
<br />
<hr />
<h2>
formular
</h2>
Bitte tragen Sie sich doch auch ein!
<br />
<br />
// Hier kommt das Formular.
<form action="./" method="post" enctype="multipart/form-data">
<div>
<strong>Ihr Name:</strong>
<br />
<input type="text" name="name" />
<br />
<br />
<strong>Ihre eMail-Adresse:</strong>
<br />
<input type="text" name="email" />
<br />
<br />
<strong>Ihr Text:</strong>
<br />
<textarea rows="7" cols="50" name="text"></textarea>
<br />
<small>Bitte beachten Sie: Das Ausführen von (X)HTML-Code ist nicht möglich.</small>
<br />
<br />
<input type="submit" value="Eintragen" />
</div>
</form>
Ich hoffe, damit lässt sich was anfangen. Wenn du Fragen zum PHP-Code hast, recherchierst du am besten im PHP-Manual (http://www.php.net/manual/de/). So machst zu gewissermaßen "learning-by-doing" ;-)
Lukas