ShoutBox selber basteln

Tutorial vom 18. Februar 2003
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('||''&#124;&#124;'stripslashes($_POST['name'])); // Umwandlung von || in HTML und Entfernung von \     $_POST['text'] = str_replace('||''&#124;&#124;'stripslashes($_POST['text']));
    
    
$fp fopen($logfile'a+'); // Logfile wird geöffnet zum beschreiben     flock($fp2); // Logfile wird veriegelt     $shout fwrite($fp$_POST['name'].'||'.$_POST['text']."\r\n"); // Neuer Eintrag wird ans Ende angehängt     flock($fp3); // 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.

Wenn Sie meine Arbeit unterstützen wollen, dürfen Sie mich gerne mit Fehlerbereinigungen oder auch Spenden erfreuen.

Vielen Dank.

2003 - 2008 | Renegat