Du bist nicht angemeldet.

  • Anmelden
  • Registrieren

NoX

Anfänger

Beiträge: 18

1

28.06.2005, 12:41

[PHP] Shoutbox

Also im folgenden wird per Code-Kommentare erläutert, wie eine einfache ShoutBox funktioniert.

Datenbank: Logfile (CVS)


Der folgende Code ist zum Speichern eines neuen Eintrages:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php 
// 
// Speichervorgang 
// 
 
$logfile = "shouts.txt"; // Datenbank, in "shouts.txt" werden die Einträge gespeichert 
 
if(isset($HTTP_POST_VARS['name']) && isset($HTTP_POST_VARS['text'])) 
{ 
$HTTP_POST_VARS['name'] = str_replace('||', '||', stripslashes($HTTP_POST_VARS['name'])); // die ||-Zeichen werden durch die HTML-Zeichen ausgetauscht und backslashes (\) werden entfernt 
$HTTP_POST_VARS['text'] = str_replace('||', '||', stripslashes($HTTP_POST_VARS['text'])); 
 
$fp = fopen($logfile, "a+"); // die Logfile wird geöffnet zum beschreiben 
flock($fp, 2); // die Logfile wird abgeriegelt 
$shout = fwrite($fp, $HTTP_POST_VARS['name'].'||'.$HTTP_POST_VARS['text']."\r\n"); // der Neue Eintrag wird ans Ende angehängt 
flock($fp, 3); // die Logfile wird wieder entriegelt 
fclose($fp); // Datei wird geschlossen 
 
if($shout) { header("Location: ".$HTTP_SERVER_VARS['PHP_SELF']); } // Weiterleitung 
} 
?>


Dieser erste Dateiabschnitt muss direkt am Anfang der Datei stehen, weil ein Header geschickt wird! Beim schicken von Headern darf nämlich vorher noch keine Ausgabe geben. Selbst <html> muss danach stehen!

Der folgende Abschnitt ist zum Anzeigen der letzten Einträge:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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]); // Die Einträge werden bei "||" getrennt 
 
echo "<table width=\"150px\" border=\"1px\">"; 
echo "<tr><td><b>". htmlspecialchars($splittet[0]) .":</b><br>". htmlspecialchars($splittet[1]) ."</td></tr>"; // HTML-Syntax wird entfernt 
echo "</table>"; 
} 
} 
?>


Nun muss nur noch das Formular angezeigt werden...

Quellcode

1
2
3
4
5
<form method="post" action="<?php echo $HTTP_SERVER_VARS['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 müsste man das nun nur noch seinem Design anpassen!
Jedoch könnt ihr sie auch erweitern... (Smilies, Codes, Admin-Bereich,...)

Achtung: Einige Webserver erlauben nicht das erstellen von Dateien durch PHP und beachtet auch, dass die Logfile (hier: shouts.txt) die Rechte 777 stehen.


Tutorial © by Webstone.info

Thema bewerten