ShoutBox selber basteln
Neu eingestellt am 14.Februar 2008
Eine sehr einfache, jedoch sichere ShoutBox. Sie basiert auf Logfiles. Die Erweiterbarkeit mit Smilies, Codes,... ist wie immer gegeben.
Die rudimentäre ShoutBox erklärt sich im folgenden hauptsächlich durch kurze Quelltext-Kommentare.
Datenbank: Textdatei bzw. Logfile (CVS)
Der folgende Quelltext ist zum Speichern eines neuen Eintrages:
<?php
//
// Speichervorgang
//
$logfile = 'shouts.txt'; // Datenbank; In "shouts.txt" werden die Einträge gespeichert
if(isset($_POST['name']) && isset($_POST['text']))
{
$_POST['name'] = str_replace('||', '||', stripslashes($_POST['name'])); // Umwandlung von || in HTML und Entfernung von \
$_POST['text'] = str_replace('||', '||', stripslashes($_POST['text']));
$fp = fopen($logfile, 'a+'); // Logfile wird geöffnet zum beschreiben
flock($fp, 2); // Logfile wird veriegelt
$shout = fwrite($fp, $_POST['name'].'||'.$_POST['text']."\r\n"); // Neuer Eintrag wird ans Ende angehängt
flock($fp, 3); // Logfile wird wieder entriegelt
fclose($fp); // Datei wird geschlossen
if($shout) { header("Location: ".$_SERVER['PHP_SELF']); } // Weiterleitung
}
?>
Dieser erste Dateiabschnitt muss direkt am Anfang der Datei stehen, weil ein Header verschickt wird! Beim schicken von Headern darf es nämlich vorher keine Ausgabe geben. Selbst <html> muss danach stehen!
Der folgende Abschnitt ist zum Anzeigen der letzten Einträge:
<?php
//
// Ausgabe der Einträge
//
$logfile = "shouts.txt"; // Datenbank, in "shouts.txt" werden die Einträge gespeichert
$amount = 5; // Anzahl der zu zeigenden Einträge
$data = file($logfile); // Einträge werden in ein Array eingelesen
$dbamount = count($data); // Einträge werden gezählt
for($i=$dbamount-$amount; $i<$dbamount; $i++)
{
if(trim($data[$i])!='') {
$splittet = explode('||', $data[$i]); // Einträge werden bei "||" getrennt
echo '<table style="width:150px;">';
echo ' <tr>';
echo ' <td><b>'.htmlspecialchars($splittet[0]).':</b><br />'.htmlspecialchars($splittet[1]).'</td>'; // HTML-Syntax wird entfernt
echo ' </tr>';
echo '</table>';
}
}
?>
Nun muss nur noch das Formular angezeigt werden...
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="name" value="Name" /><br />
<input type="text" name="text" value="Text" /><br />
<input type="submit" value="Senden" />
</form>
Grundsätzlich könnte man jetzt anfangen die Shoutbox dem eigenen Design anzupassen!
Jedoch könnt ihr dieses kleine Skript auch erweitern mit Smilies, Codes, Filter, Aministrationsbereich usw.
Achtung: Einige Webserver erlauben nicht das erstellen von Dateien durch PHP und beachtet auch, dass die Logfile (hier: shouts.txt) die Rechte 777 hat. Ansonsten kann der Text nicht in die Logfile geschrieben werden.