|
|
|
Chat
Zurück zur Übersicht Ein kleiner Chat per PHP
ich hatte gerade lange und habe mir gedacht ich mal mal einen Chat. Das ganze ist noch nicht ganz ausgereift aber einiges ist schon möglich.
Hier die Dateien im einzelnen:
index.php //frameset für den chat ... damit nur eine datei refreched wird
| PHP |
1:
2:
3:
4:
5:
6:
7:
|
<php
echo "<frameset rows=\"80%,20%\">";
echo "<frame src=\"ausgabe_chat_texte.php?user=$_GET[user]\">";
echo "<frame src=\"insert_chat_texte.php?user=$_GET[user]\">";
echo "</frameset>";
?>
|
|
ausgabe_chat_texte.php //ausgabe der chattexte
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
|
<?php
include_once("chat_mysql.php");
$result = mysql_query("SELECT * FROM online WHERE user = '$_GET[user]'");
$menge = mysql_num_rows($result);
if($menge == 0)
{
$zeit = time();
$eintrag = "INSERT INTO online (user, time)
VALUES ('$_GET[user]','$zeit')";
$eintragen = mysql_query($eintrag);
$eintrag = "INSERT INTO chat (absender, nachricht, time)
VALUES ('System', '$_GET[user] ist Online', '$zeit')";
$eintragen = mysql_query($eintrag);
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"chat_style.css\">";
echo "<meta http-equiv=\"refresh\" content=\"2;\">";
echo "<div>";
echo "Willkommen im Lands of War Chat.<br>";
echo "Sie werden weitergeleitet ...<br>";
echo "</div>";
}
else
{
$abfrage = "SELECT * FROM chat ORDER BY id DESC LIMIT 25";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
if($row->status == "2" AND $row->empfänger == "$_GET[user]" OR $row->status == "2" AND $row->absender == "$_GET[user]")
{
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"chat_style.css\">";
echo "<meta http-equiv=\"refresh\" content=\"2;\">";
echo "<div class=\"privat\">";
echo "$row->absender --> $row->empfänger: $row->nachricht<br>";
echo "</div>";
}
else
{
$zeit = $row->zeit;
$absender = $row->absender;
$nachricht = $row->nachricht;
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"chat_style.css\">";
echo "<meta http-equiv=\"refresh\" content=\"2;\">";
echo "<div>";
echo "$absender: $nachricht<br>";
echo "</div>";
}
}
}
?>
|
|
form_chat_texte.php //zum eingeben der chattexte
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
|
<?php
include_once ("chat_mysql.php");
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"chat_style.css\">";
echo "<form action=\"insert_chat_texte.php?user=$_GET[user]\" method=\"post\">";
echo "An: <input size=\"15\" name=\"empfänger\" type=\"text\"> ";
echo "Nachricht: <input size=\"24\" name=\"nachricht\" type=\"text\"> ";
echo "<input value=\"Absenden\" type=\"submit\"><br>";
echo "</form>";
echo "Online: ";
$abfrage = "SELECT * FROM online";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo "$row->user, ";
}
?>
|
|
insert_chat_texte.php //zum eintragen der Chattexte
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
|
<?php
include_once("chat_mysql.php");
if($_POST[nachricht] == "")
{
include_once ("form_chat_texte.php");
}
else
{
$zeit = time();
if($_POST[empfänger] == "")
{
$eintrag = "INSERT INTO chat (absender, nachricht, time)
VALUES ('$_GET[user]', '$_POST[nachricht]', '$zeit')";
$eintragen = mysql_query($eintrag);
}
else
{
$eintrag = "INSERT INTO chat (absender, nachricht, time, empfänger, status)
VALUES ('$_GET[user]', '$_POST[nachricht]', '$zeit', '$_POST[empfänger]', '2')";
$eintragen = mysql_query($eintrag);
}
include_once("form_chat_texte.php");
}
?>
|
|
chat_style.css //Chat aussehen ... anpasspaar
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
|
body
{
background-color: #000000;
color: #FFFFFF;
}
div
{
font:15px verdana,sans-serif;
text-decoration:none;
border:none;
}
.privat
{
color: #FF6600;
}
a
{
text-decoration:none;
color: #FF6600;
text-align:center;
border:none;
}
|
|
chat_mysql.php //mysql zugangsdaten
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
|
<?php
//Verbindung zur MySQL Datenbank
$verbindung = mysql_connect ("server", "username", "passwort")
or die ("Verbindung zum SERVER konnte nicht hergestellt werden.");
mysql_select_db("datenbank")
or die ("Verbindung zur DATENBANK konnte nicht hergestellt werden.");
?>
|
|
Vielleicht sollte ich noch darauf hinweißen das dieser Chat bei vielen User ziehmlich viel Traffic verursacht einfach aus dem Grund das die Datei für die Ausgabe aller 2 Sekunden aktuallisiert wird und dadurch immer wieder die Datenbank ausgabe ausgeführt wird.
Die Datenbank sieht wie folgt aus:
Tabelle online
id, int, 8 //ID
user, text //Der Username
time, varchar, 25 //Zeit der letzten aktualisierung
Tabelle chat
id, int, 8 //ID wie gehabt
absender, text //Der Ersteller des Textes
time, varchar, 25 //Erstellungszeit
nachricht, text //Nachricht
status, 1 //gibt an ob privat oder nicht
empfänger, text //falls privat .. der Empfänger
Für Leute die immer auf dem aktuellen Stand der Onlineuser sein möchten müssen folgende Datei selber ausführen oder als Cronjob benutzten.
clear_chat_user.php //leert die Tabelle "online"
| PHP |
1:
2:
3:
4:
5:
|
<?php
include_once("chat_mysql.php");
$loeschen = "DELETE FROM online";
$loesch = mysql_query($loeschen);
?>
|
|
MfG Eiermann - Dateien gepackt im Anhang.
Kommentare
Zurück zur Übersicht
Autor [A&M-Projekt] Eiermann
|
|
|
|