$result2 = mysql_query($query2, $conn); if ($result2 and mysql_num_rows($result2) > 0) { $raumname = mysql_result($result2, 0, 0); } else { $raumname = ""; } mysql_free_result($result2); $query2 = "SELECT o_user FROM online WHERE (o_level='S' OR o_level='C')"; $result2 = mysql_query($query2, $conn); if ($result2 and mysql_num_rows($result2) > 0) { $txt = str_replace("%raumname%", $raumname, $t['default7']); while ($row2 = mysql_fetch_object($result2)) { $ur1 = "user.php?http_host=<HTTP_HOST>&id=<ID>&aktion=zeig&user={$u_id}"; $ah1 = "<A HREF=\"{$ur1}\" TARGET=\"{$u_nick}\" onclick=\"neuesFenster('{$ur1}','{$u_nick}'); return(false);\">"; $ah2 = "</A>"; system_msg("", 0, $row2->o_user, $system_farbe, str_replace("%u_nick%", $ah1 . $u_nick . $ah2, $txt)); } } mysql_free_result($result2); } // Kopf ausgeben if ($layout_bodytag) { echo "<HTML>\n<HEAD><TITLE>{$body_titel}</TITLE><META CHARSET=UTF-8>\n" . $stylesheet . "\n" . $zusatztext_kopf . "\n</HEAD>\n"; } if ($communityfeatures && $eintritt == "forum") { // Login ins Forum betrete_forum($o_id, $u_id, $u_nick, $u_level); // Frame-Einstellungen für Browser definieren $user_agent = strtolower($HTTP_USER_AGENT); if (preg_match("/linux/", $user_agent)) { $frame_type = "linux";
function raum_gehe($o_id, $u_id, $u_name, $raum_alt, $raum_neu, $geschlossen) { // user $u_id/$u_name geht von $raum_alt in Raum $raum_neu // falls $geschlossen=TRUE -> auch geschlossene Räume betreten // Nachricht in Raum $r_id wird erzeugt // ID des neuen Raums wird zurückgeliefert global $dbase, $conn, $chat, $admin, $u_level, $u_punkte_gesamt, $farbe_chat_background2, $t, $beichtstuhl, $lobby, $timeout; global $http_host, $id, $erweitertefeatures, $forumfeatures, $communityfeatures; global $raum_eintrittsnachricht_anzeige_deaktivieren, $raum_austrittsnachricht_anzeige_deaktivieren; global $raum_eintrittsnachricht_kurzform, $raum_austrittsnachricht_kurzform; // Info zu altem Raum lesen $query = "SELECT r_name,r_status1,r_austritt,r_min_punkte from raum " . "WHERE r_id=" . intval($raum_alt); $result = mysql_query($query, $conn); if ($result && mysql_num_rows($result) == 1) { $alt = mysql_fetch_object($result); mysql_free_result($result); } // Ist User aus dem Raum ausgesperrt? $query = "SELECT s_id FROM sperre WHERE s_raum=" . intval($raum_neu) . " AND s_user={$u_id}"; $result = @mysql_query($query, $conn); $rows = @mysql_Num_Rows($result); if ($rows == 0) { $gesperrt = 0; } else { $gesperrt = 1; } @mysql_free_result($result); // Info zu neuem Raum lesen $query = "SELECT * from raum WHERE r_id=" . intval($raum_neu); $result = mysql_query($query, $conn); if ($result && mysql_num_rows($result) == 1) { $neu = mysql_fetch_object($result); mysql_free_result($result); // Online Punkte Holen, damit der User zum Raumwechsel nicht ein/ausloggen muss $o_punkte = 0; if ($erweitertefeatures == 1) { $query2 = "SELECT o_punkte FROM online WHERE o_id=" . intval($o_id); $result2 = mysql_query($query2, $conn); if ($result2 && mysql_num_rows($result2) == 1) { $online = mysql_fetch_object($result2); mysql_free_result($result2); $o_punkte = $online->o_punkte; unset($online); } unset($query2); unset($result2); } // wenn hier nach Erweitertefeatures oder Punkte geprüft werden würde, was sinn machen würde, // kommen User aus Kostenlosen chats, die mit der MainChat Community verbunden sind, trotzdem in den Raum, // trotz zu wenigen Punkten if ($neu->r_name != $lobby && $neu->r_min_punkte > $u_punkte_gesamt + $o_punkte && !$admin && $u_level != "A") { $zuwenigpunkte = 1; } else { $zuwenigpunkte = 0; } $raumwechsel = false; // Prüfen ob Raum geschlossen oder Admin // Prüfen, ob Raumwechsel erlaubt... // Raumwechsel erlaubt wenn Raum nicht geschlossen und user nicht gesperrt. if ($neu->r_status1 == "G" || $neu->r_status1 == "M" || $zuwenigpunkte == 1) { // Raum geschlossen. nur rein, wenn auf invite liste. $query = "SELECT inv_user FROM invite WHERE inv_raum={$neu->r_id} AND inv_user={$u_id}"; $result = mysql_query($query, $conn); if ($result > 0) { if (mysql_num_rows($result) > 0) { $raumwechsel = true; } mysql_free_result($result); } // oder falls user=raumbesitzer... // macht wenig sinn, das ein RB in seinen Raum ein ! angeben muss //if ($neu->r_besitzer==$u_id && $geschlossen) $raumwechsel=true; if ($neu->r_besitzer == $u_id) { $raumwechsel = true; } } else { // Raum offen, nur rein, wenn nicht gesperrt. if ($gesperrt == 0 && $zuwenigpunkte == 0) { $raumwechsel = true; } } // raumwechsel nicht erlaubt, wenn alter Raum teergrube (ausser für Admins + Tempadmins) if ($alt->r_status1 == "L" && $u_level != "A" && !$admin) { $raumwechsel = false; } // für admin raumwechsel erlaubt. if ($admin && $geschlossen) { $raumwechsel = true; } // Falls Beichtstuhl-Modus und $geschlossen!=TRUE, Anzahl der User im Raum // ermitteln. Der Raum darf betreten werden, wenn: // 1) genau ein Admin im Raum ist und // 2) kein User im Raum ist oder // 3) Raum temporär ist oder // 4) der Raum Lobby ist oder // 5) der User ein Admin ist if ($raumwechsel && $beichtstuhl && !$admin) { $query = "SELECT r_id,count(o_id) as anzahl, " . "count(o_level='C') as CADMIN, count(o_level='S') as SADMIN, " . "r_name='{$lobby}' as LOBBY, r_status2='T' AS STATUS " . "FROM raum LEFT JOIN online ON o_raum=r_id " . "WHERE ((UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(o_aktiv)) <= {$timeout} " . "OR r_name='Lobby' OR r_status2='T') " . "AND r_id=" . intval($raum_neu) . " " . "GROUP BY r_id HAVING anzahl=1 AND (CADMIN=1 OR SADMIN=1) OR LOBBY OR STATUS"; // system_msg("",0,$u_id,"","DEBUG $query"); $result = mysql_query($query, $conn); if ($result && mysql_num_rows($result) == 1) { $raumwechsel = TRUE; } else { $raumwechsel = FALSE; } @mysql_free_result($result); } // Darf Raum nun betreten werden? if ($raumwechsel) { // Raum verlassen $back = nachricht_verlasse($raum_alt, $u_name, $alt->r_name); // back in DB merken $f['o_chat_id'] = $back; schreibe_db("online", $f, $o_id, "o_id"); // Neuen Raum eintragen $query = "UPDATE online SET o_raum=" . intval($raum_neu) . " WHERE o_user={$u_id} AND o_raum=" . intval($raum_alt); $result = mysql_query($query, $conn); // Austrittstext if ($t['raum_gehe1']) { $txt = $t['raum_gehe1'] . " " . $alt->r_name . ":"; } else { unset($txt); } if ($raum_austrittsnachricht_kurzform == "1") { unset($txt); } if (strlen($alt->r_austritt) > 0) { $txt = "<B>{$txt}</B> {$alt->r_austritt}<BR>"; } else { unset($txt); } if ($raum_austrittsnachricht_anzeige_deaktivieren == "1") { unset($txt); } if (!isset($txt)) { $txt = ""; } // Trenner zwischen den Räumen, Austrittstext system_msg("", 0, $u_id, "", " "); system_msg("", 0, $u_id, "", $txt . "<BR><TABLE WIDTH=100% BGCOLOR=\"{$farbe_chat_background2}\" BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD>" . "<IMG SRC=\"pics/fuell.gif\" ALT=\"\" WIDTH=4 HEIGHT=4><BR></TD></TR></TABLE>\n"); // Raum betreten nachricht_betrete($u_id, $raum_neu, $u_name, $neu->r_name); // Wenn der Neue Raum eine Teergrube ist, dann Eingabzeile aktualisieren, daß der [FORUM] Link verschwindet // Es sei denn man ist Admin, dann braucht es nicht aktualisiert werden, denn der Link wird nicht ausgeblendet // bzw. wenn alter Raum Teergrube war, dann auch aktualisieren // $u_id über Online Tabelle, da der User auch geschubst werden kann, deswegen dessen o_vhost und o_hash if ($forumfeatures && $communityfeatures && !$beichtstuhl && ($neu->r_status1 == "L" || $alt->r_status1 == "L") && $u_level != "A" && !$admin) { $query2 = "SELECT o_hash, o_vhost FROM online WHERE o_id=" . intval($o_id); $result2 = mysql_query($query2, $conn); if ($result2 && mysql_num_rows($result2) == 1) { $online = mysql_fetch_object($result2); mysql_free_result($result2); system_msg("", 0, $u_id, "", "<SCRIPT>parent.frames[3].location.href='eingabe.php?http_host={$online->o_vhost}&id={$online->o_hash}';</SCRIPT>"); unset($online); } unset($query2); unset($result2); } // Nachricht falls gesperrt ausgeben if ($gesperrt || $zuwenigpunkte) { system_msg("", 0, $u_id, "", str_replace("%r_name_neu%", $neu->r_name, $t['raum_gehe2'])); } // Topic vorhanden? ausgeben if ($t['raum_gehe6']) { $txt = $t['raum_gehe6'] . " " . $neu->r_name . ":"; } else { unset($txt); } if (strlen($neu->r_topic) > 0) { system_msg("", 0, $u_id, "", "<BR><B>{$txt}</B> {$neu->r_topic}"); } // Eintrittsnachricht if ($t['raum_gehe3']) { $txt = $t['raum_gehe3'] . " " . $neu->r_name . ":"; } else { unset($txt); } if ($raum_eintrittsnachricht_kurzform == "1") { unset($txt); } if ($raum_eintrittsnachricht_anzeige_deaktivieren == "1") { } else { if (strlen($neu->r_eintritt) > 0) { system_msg("", 0, $u_id, "", "<BR><B>{$txt} {$neu->r_eintritt}, {$u_name}!</B><BR>"); } else { system_msg("", 0, $u_id, "", "<BR><B>{$txt}</B> {$t['betrete_chat2']}, {$u_name}!</B><BR>"); } } $raum = $raum_neu; } else { // Raum kann nicht betreten werden system_msg("", 0, $u_id, "", str_replace("%r_name_neu%", $neu->r_name, $t['raum_gehe4'])); // Nachricht das gesperrt ausgeben if ($gesperrt) { system_msg("", 0, $u_id, "", str_replace("%r_name_neu%", $neu->r_name, $t['raum_gehe5'])); } // Nachricht das zu wenige Punkte ausgeben if ($zuwenigpunkte) { if ($u_level == "G") { $fehler = str_replace("%r_name_neu%", $neu->r_name, $t['raum_gehe8']); } else { $fehler = str_replace("%r_name_neu%", $neu->r_name, $t['raum_gehe7']); } $fehler = str_replace("%r_min_punkte%", $neu->r_min_punkte, $fehler); system_msg("", 0, $u_id, "", $fehler); unset($fehler); } $raum = $raum_alt; } } return $raum; }
if ($result2 and mysql_num_rows($result2) > 0) { $lobby_id = mysql_result($result2, 0, "r_id"); } @mysql_free_result($result2); // Raum ist nicht Lobby -> Löschen if ($f['r_id'] == $lobby_id) { echo "<P>" . str_replace("%r_name%", $row->r_name, $t['fehler12']) . "</P>\n"; } else { // Raum schließen $f['r_status1'] = "G"; schreibe_db("raum", $f, $f['r_id'], "r_id"); // Raum leeren $query = "SELECT o_user,o_name FROM online WHERE o_raum={$f['r_id']} "; $result2 = mysql_query($query, $conn); while ($row2 = mysql_fetch_object($result2)) { system_msg("", 0, $row2->o_user, $system_farbe, str_replace("%r_name%", $row->r_name, $t['fehler4'])); $oo_raum = raum_gehe($o_id, $row2->o_user, $row2->o_name, $f['r_id'], $lobby_id, FALSE); raum_user($lobby_id, $row2->o_user, $id); $i++; } @mysql_free_result($result2); $query = "DELETE FROM raum WHERE r_id={$f['r_id']} "; $result2 = mysql_query($query, $conn); @mysql_free_result($result2); // Gesperrte Räume löschen $query = "DELETE FROM sperre WHERE s_raum={$f['r_id']}"; $result2 = mysql_query($query, $conn); @mysql_free_result($result2); // ausgeben: raum wurde gelöscht. echo "<P>" . str_replace("%r_name%", $row->r_name, $t['fehler3']) . "</P>\n"; }
$fehler = TRUE; } } @mysql_free_result($result); } elseif (isset($text) && strlen($text) >= $chat_max_eingabe) { $fehler = TRUE; } // Falls kein Spam, Nachricht ausgeben if (!$fehler) { if (strlen($u_farbe) == 0) { $u_farbe = $user_farbe; } chat_msg($o_id, $u_id, $u_nick, $u_farbe, $admin, $o_raum, isset($text) ? $text : "", ""); } elseif ($fehler) { // Systemnachricht mit Fehlermeldung an User schreiben system_msg("", 0, $u_id, $system_farbe, $t['floodsperre1'] . " " . $text); // Zur Strafe 10 Punkte abziehen if ($communityfeatures && $punktefeatures) { $anzahl = 10; punkte(-1 * $anzahl, $o_id, $u_id, $t['floodsperre2'], TRUE); } } // Kopf ausgeben echo "<HTML><HEAD></HEAD>" . $body_tag; // Timestamp im Datensatz aktualisieren aktualisiere_online($u_id, $o_raum); // Falls Pull-Chat, chat-Fenster neu laden (sicherer Modus), falls User im Chat if ($o_who != 2 && ($backup_chat || $u_backup)) { echo "<SCRIPT LANGUAGE=JavaScript>\n" . "parent.chat.location.href='chat.php?http_host={$http_host}&id={$id}'" . "</SCRIPT>\n"; } // falls Moderator, moderationsfenster nach Eingabe neu laden, falls User im Chat
$o_raum = $row->o_raum; $ignore = unserialize($row->o_ignore); } else { // Raus aus dem Chat, vorher kurz warten sleep(10); $beende_prozess = TRUE; } mysql_free_result($result); } $j++; $i++; // Falls nach mehr als 100 sek. keine Ausgabe erfolgt, Userliste anzeigen // Nach > 120 Sekunden schlagen bei einigen Browsern Timeouts zu ;) if ($i > $zeige_userliste) { if (isset($raum_msg) && $raum_msg != "AUS") { system_msg("", 0, $u_id, $system_farbe, $raum_msg); } else { raum_user($o_raum, $u_id, ""); } $i = 0; } // Raumwechsel? if ($back == 0 && $o_raum != $o_raum_alt) { // Trigger für die letzten Nachrichten setzen $back = 1; } // Chatausgabe, $letzte_id ist global // Falls Result=wahr wurde Text ausgegeben, Timer für Userliste zurücksetzen if (chat_lese($o_id, $o_raum, $u_id, $sysmsg, $ignore, $back)) { $i = 0; }
} $body_tag = $body_tag . "TEXT=\"{$farbe_chat_text3}\" " . "LINK=\"{$farbe_chat_link3}\" " . "VLINK=\"{$farbe_chat_vlink3}\" " . "ALINK=\"{$farbe_chat_vlink3}\">\n"; // Prüfung, ob User wegen Inaktivität ausgelogt werden soll if ($u_id && $chat_timeout && $u_level != 'S' && $u_level != 'C' && $u_level != 'M' && $o_timeout_zeit) { if ($o_timeout_warnung == "J" && $chat_timeout < time() - $o_timeout_zeit) { // User ausloggen $zusatzjavascript = "<SCRIPT>\n" . "window.open(\"hilfe.php?http_host={$http_host}&id={$id}&aktion=logout\",'Logout',\"resizable=yes,scrollbars=yes,width=300,height=300\")\n" . "</SCRIPT>\n"; require_once "functions.php-func-verlasse_chat.php"; require_once "functions.php-func-nachricht.php"; verlasse_chat($u_id, $u_nick, $o_raum); logout($o_id, $u_id, "forum->logout"); unset($u_id); unset($o_id); } elseif ($o_timeout_warnung != "J" && $chat_timeout / 4 * 3 < time() - $o_timeout_zeit) { // Warnung über bevorstehenden Logout ausgeben system_msg("", 0, $u_id, $system_farbe, str_replace("%zeit%", $chat_timeout / 60, $t['chat_msg101'])); unset($f); $f[o_timeout_warnung] = "J"; schreibe_db("online", $f, $o_id, "o_id"); } } else { $zusatzjavascript = ""; } if ($u_id) { // Kopf ausgeben // Fenstername $fenster = str_replace("+", "", $u_nick); $fenster = str_replace("-", "", $fenster); $fenster = str_replace("ä", "", $fenster); $fenster = str_replace("ö", "", $fenster); $fenster = str_replace("ü", "", $fenster);
function auto_knebel($text) { global $admin; global $akdbase; global $dbase; global $u_id; global $u_nick; global $o_raum; global $t; global $ak; global $ak2; global $system_farbe; global $conn; global $knebelzeit; global $erweitertefeatures; // Prüfen ob private Nachricht $chatzeile = preg_split("/ /", $text, 2); $chatzeile[0] = strtolower($chatzeile[0]); if ($chatzeile[0] == '/msg' or $chatzeile[0] == '/talk' or $chatzeile[0] == '/tell' or $chatzeile[0] == '/msgpriv' or $chatzeile[0] == '/t') { $privatnachricht = true; } else { $privatnachricht = false; } unset($chatzeile); if (!$knebelzeit) { $knebelzeit = 5; } // für temp-admins gibts nun auch keinen autoknebel mehr $query = "SELECT o_level FROM online WHERE o_user = '******'"; $result = mysql_query($query); $a = mysql_fetch_array($result); if ($a['o_level'] == "A" || $a['o_level'] == "S" || $a['o_level'] == "C" || $a['o_level'] == "M") { $admin2 = true; } else { $admin2 = false; } # system_msg("",0,$u_id,$system_farbe,"$admin2 , $akdbase, $dbase, $erweitertefeatures"); // testen auf autoknebel... // if (!$admin2 && ($akdbase==$dbase || $erweitertefeatures)) { nein, so nicht (fido) // alt: if (!$admin2 && ($akdbase==$dbase)) { if ($akdbase != $dbase) { $ak = ""; } if (!$admin2) { if ($ak2) { $ak2 = str_replace("//", "", $ak2); $ak2 = explode("#", $ak2); $ak = array_merge($ak, $ak2); } for ($i = 0; $i < count($ak); $i++) { // Text in Kleinschrift gegen verbotene Text prüfen $testtext = strtolower($text); #$testtext=strip_tags($testtext); $testtext = str_replace("*", "", $testtext); $testtext = str_replace("_", "", $testtext); #$testtext=str_replace(".","\.",$testtext); if (isset($ak[$i]) && $ak[$i]) { if (preg_match($ak[$i], $testtext, $treffer)) { system_msg("", 0, $u_id, $system_farbe, $t['knebel7']); // Hole aktuelle Knebelendzeit und geplante neue $query = "select o_knebel, FROM_UNIXTIME(UNIX_TIMESTAMP(NOW())+" . intval($knebelzeit) . "*60) as knebelneu " . "from online where o_user={$u_id}"; $result = mysql_query($query, $conn); $row = mysql_fetch_array($result); // system_msg("",0,$u_id,$system_farbe,"DEBUG: $row[o_knebel] ... $row[knebelneu] "); // Nur wenn neue Zeit größer als alte, dann erneut knebeln if ($row[o_knebel] <= $row[knebelneu]) { $query = "update online set o_knebel=FROM_UNIXTIME(UNIX_TIMESTAMP(NOW())+" . intval($knebelzeit) . "*60) " . "where o_user={$u_id}"; $result = mysql_query($query, $conn); } // admins benachrichtigen, immer, auch wenn schon geknebelt gewesen $query = "SELECT r_name FROM raum WHERE r_id={$o_raum}"; $result = mysql_query($query, $conn); $r_name = mysql_result($result, 0, "r_name"); $query = "SELECT o_level,o_name,o_user,r_name FROM online,raum WHERE (o_level='S' OR o_level='C') AND r_id=o_raum "; $result = mysql_query($query, $conn); if ($result > 0) { if (mysql_num_rows($result) > 0) { while ($row = mysql_fetch_array($result)) { $txt = str_replace("%user%", user($u_id, 0, TRUE, FALSE, "", "", "", FALSE), $t['knebel8']); $txt = str_replace("%raum%", $r_name, $txt); system_msg("", 0, $row['o_user'], $system_farbe, $txt); if (!$privatnachricht) { system_msg("", 0, $row['o_user'], $system_farbe, $t['knebel9'] . " " . htmlspecialchars($text)); } else { system_msg("", 0, $row['o_user'], $system_farbe, $t['knebel10'] . " " . htmlspecialchars($treffer[0])); } } } } $text = ""; } } } } return $text; }
function betrete_forum($o_id, $u_id, $u_name, $u_level) { // User betritt beim Login das Forum global $dbase, $conn, $chat, $lobby, $eintrittsraum, $t, $hash_id, $communityfeatures, $beichtstuhl, $system_farbe; //Daten in onlinetabelle schreiben $f['o_raum'] = -1; $f['o_who'] = "2"; //user betritt nicht chat, sondern direkt forum --> $back ist die aktuellste Zeile in chat $f['o_chat_id'] = system_msg("", 0, $u_id, "", str_replace("%u_nick%", $u_name, $t['betrete_forum1'])); schreibe_db("online", $f, $o_id, "o_id"); // Hat der User Aktionen für den Login eingestellt, wie Nachricht bei neuer Mail oder Freunden an sich selbst? if ($communityfeatures && $u_level != "G") { aktion("Login", $u_id, $u_name, $hash_id); } // Nachrichten an Freude verschicken if ($communityfeatures) { $query = "SELECT f_id,f_text,f_userid,f_freundid,f_zeit FROM freunde WHERE f_userid={$u_id} AND f_status = 'bestaetigt' UNION SELECT f_id,f_text,f_userid,f_freundid,f_zeit FROM freunde WHERE f_freundid={$u_id} AND f_status = 'bestaetigt' ORDER BY f_zeit desc "; $result = mysql_query($query, $conn); if ($result && mysql_num_rows($result) > 0) { while ($row = mysql_fetch_object($result)) { unset($f); $f['raum'] = ""; $f['aktion'] = "Login"; $f['f_text'] = $row->f_text; if ($row->f_userid == $u_id) { if (ist_online($row->f_freundid)) { $wann = "Sofort/Online"; $an_u_id = $row->f_freundid; } else { $wann = "Sofort/Offline"; $an_u_id = $row->f_freundid; } } else { if (ist_online($row->f_userid)) { $wann = "Sofort/Online"; $an_u_id = $row->f_userid; } else { $wann = "Sofort/Offline"; $an_u_id = $row->f_userid; } } // Aktion ausführen aktion($wann, $an_u_id, $u_name, "", "Freunde", $f); } } } @mysql_free_result($result); }
function gehe_forum($u_id, $u_nick, $o_id, $o_raum) { global $conn, $t; //Austrittstext im alten raum erzeugen verlasse_chat($u_id, $u_nick, $o_raum); system_msg("", 0, $u_id, "", str_replace("%u_nick%", $u_nick, $t['betrete_forum1'])); //Daten in online-tabelle richten $f['o_raum'] = -1; //-1 allgemein fuer community $f['o_who'] = "2"; //2 -> Forum schreibe_db("online", $f, $o_id, "o_id"); }
function sms_msg($von_user, $von_user_id, $an_user, $farbe, $text, $userdata = "") { // Schreibt privaten Text von $von_user an User $an_user // Art: N: Normal // S: Systemnachricht // P: Privatnachticht // H: Versteckte Nachricht global $conn, $chat, $http_host, $u_punkte_gesamt, $sms; unset($fehler); $smszulang = false; $emp = user($von_user_id, $userdata, FALSE, FALSE, " ", "", "", FALSE, TRUE); $absender = $emp . "@" . $chat . ": "; // Wir basteln uns den Absender der SMS if (160 - strlen($text) - strlen($absender) < 0) { $smszulang = true; } $text = substr($text, 0, 160 - strlen($absender)); // Text um Absender kürzen $text = preg_replace("/[\\\\" . chr(1) . "-" . chr(31) . "]/", "", $text); // Ungültige Zeichen filtern $complete = $absender . $text; // Prüfen ob genug Punkte #if ($u_punkte_gesamt < $sms[punkte]) { $fehler = "Um SMS verschicken zu dürfen brauchst Du mehr als $sms[punkte] Punkte.";} // Prüfen ob noch genug SMS-Guthaben da $guthaben = hole_smsguthaben($von_user_id); if (!isset($fehler)) { if ($guthaben <= 0) { $fehler = "Du hast kein SMS-Guthaben mehr!"; } } // Prüfen ob User SMS möchte $query = "SELECT u_sms_ok FROM user WHERE u_id = " . intval($an_user); $result = mysql_query($query); $a = mysql_fetch_array($result); mysql_free_result($result); $sms_ok = $a['u_sms_ok']; if (!isset($fehler)) { if ($sms_ok == "N") { $fehler = "Dieser User möchte keine SMS empfangen."; } } // Prüfen auf gültige Handynummer des Empfängers $handynr = hole_handynummer($an_user); if (!isset($fehler)) { if (!pruefe_handynummer($handynr)) { $fehler = "Dieser User hat leider keine gültige Handynummer eingetragen."; } } if (isset($fehler)) { system_msg("", 0, $von_user_id, $u_farbe, "<b>Fehler:</b> Die SMS konnte nicht verschickt werden. {$fehler}"); } else { $query = "SELECT u_nick FROM user WHERE u_id = " . intval($an_user); $result = mysql_query($query); $emp2 = mysql_fetch_array($result); sms_sende($von_user_id, $an_user, $complete); $txt = "<B>{$chat}:</B> sende SMS an {$emp2['u_nick']}: '{$text}'"; if ($smszulang) { system_msg("", 0, $von_user_id, $system_farbe, "<B>Hinweis:</B> Die eingegebene SMS war zu lang. Sie wurde auf 160 Zeichen gekürzt!"); } system_msg("", 0, $von_user_id, $system_farbe, $txt); } // In Session Timeout-Zeit auf jetzt setzen if ($von_user_id) { $query = "UPDATE online SET o_timeout_zeit=DATE_FORMAT(NOW(),\"%Y%m%d%H%i%s\"), o_timeout_warnung='N' " . "WHERE o_user=" . intval($von_user_id); $result = mysql_query($query, $conn); } return $back; }
function warnung($u_id, $u_nick, $art) { // Gibt eine Warnung im Chat an den User $u_id/$u_nick aus global $t, $system_farbe, $warnmeldung_sicherermodus_deaktivieren; $user = ""; if ($u_nick) { $user = "******" . $u_nick; } switch ($art) { case "sicherer_modus": if (!$warnmeldung_sicherermodus_deaktivieren == "1") { $text = str_replace("%user%", $user, str_replace("%text%", $t['warnung2'], $t['warnung1'])); } break; case "ohne_js": $text = str_replace("%user%", $user, str_replace("%text%", $t['warnung3'], $t['warnung1'])); break; default: $text = str_replace("%user%", $user, $t['warnung1']); } if ($u_id) { system_msg("", 0, $u_id, $system_farbe, $text); } }
function postings_neu($an_u_id, $u_nick, $id, $nachricht) { global $conn, $t, $system_farbe; //schon gelesene Postings des Users holen $sql = "select u_gelesene_postings from user where u_id = " . intval($an_u_id); $query = mysql_query($sql, $conn); if (mysql_num_rows($query) > 0) { $gelesene = mysql_result($query, 0, "u_gelesene_postings"); } $u_gelesene = unserialize($gelesene); @mysql_free_result($query); //alle eigenen Postings des Users mit allen Antworten //und dem Threadbaum holen //die RegExp matcht auf die Posting-ID im Feld Threadorder //entweder mit vorher und nachher keiner Zahl (damit z.B. 32 //in 131,132,133 nicht matcht) oder am Anfang oder Ende // $sql = "select a.po_id as po_id_own, a.po_th_id as po_th_id, // a.po_titel as po_titel_own, // date_format(from_unixtime(a.po_ts), '%d.%m.%Y %H:%i') as po_date_own, // th_name, fo_name, // b.po_id as po_id_reply, b.po_u_id as po_u_id_reply, // b.po_titel as po_titel_reply, // date_format(from_unixtime(b.po_ts), '%d.%m.%Y %H:%i') as po_date_reply, // u_nick, // c.po_threadorder as threadord, c.po_id as po_id_thread // from posting a, posting b, thema, forum, user // left join posting c on c.po_threadorder REGEXP concat(\"(^|[^0-9])\",a.po_id,\"($|[^0-9])\") // where a.po_u_id = $an_u_id // and a.po_id = b.po_vater_id // and a.po_th_id = th_id // and fo_id=th_fo_id // and b.po_u_id = u_id // and a.po_u_id <> b.po_u_id"; // Vereinfachter Query ohne Left join, ist nun viel viel schneller. Fehlende Felder werden über zwei weitere Queries gesucht. $sql = "\n\t\tselect a.po_id as po_id_own, a.po_th_id as po_th_id,\n\t\ta.po_titel as po_titel_own,\n\t\tdate_format(from_unixtime(a.po_ts), '%d.%m.%Y %H:%i') as po_date_own,\n\t\tth_name, fo_name,\n\t\tb.po_id as po_id_reply, b.po_u_id as po_u_id_reply,\n\t\tb.po_titel as po_titel_reply,\n\t\tdate_format(from_unixtime(b.po_ts), '%d.%m.%Y %H:%i') as po_date_reply,\n\t\tu_nick, a.po_threadorder as threadord, a.po_id as po_id_thread\n\t\tfrom posting a, posting b, thema, forum, user \n\t\twhere a.po_u_id = " . intval($an_u_id) . "\n\t\tand a.po_id = b.po_vater_id \n\t\tand a.po_th_id = th_id \n\t\tand fo_id=th_fo_id \n\t\tand b.po_u_id = u_id \n\t\tand a.po_u_id <> b.po_u_id\n\t\t"; $query = mysql_query($sql, $conn); while ($postings = mysql_fetch_array($query, MYSQL_ASSOC)) { //falls posting noch nicht gelesen ist es neu if (is_array($u_gelesene[$postings['po_th_id']])) { if (!in_array($postings['po_id_reply'], $u_gelesene[$postings['po_th_id']])) { $poid = $postings['po_id_own']; $postings['po_id_thread'] = suche_vaterposting($poid); $postings['threadord'] = suche_threadord($postings['po_id_thread']); //Nachricht versenden switch ($nachricht) { case "OLM": $text = str_replace("%po_titel%", $postings['po_titel_own'], $t['msg_new_posting_olm']); $text = str_replace("%po_ts%", $postings['po_date_own'], $text); $text = str_replace("%forum%", $postings['fo_name'], $text); $text = str_replace("%thema%", $postings['th_name'], $text); $text = str_replace("%user_from_nick%", $postings['u_nick'], $text); $text = str_replace("%po_titel_antwort%", $postings['po_titel_reply'], $text); $text = str_replace("%po_ts_antwort%", $postings['po_date_reply'], $text); system_msg("", 0, $an_u_id, $system_farbe, $text); break; case "Chat-Mail": if ($postings['threadord']) { $baum = erzeuge_baum($postings['threadord'], $postings['po_id_own'], $postings['po_id_thread']); } else { $baum = $postings['po_titel_own'] . " -> " . $postings['po_titel_reply']; } $betreff = str_replace("%po_titel%", $postings['po_titel_own'], $t['betreff_new_posting']); $text = str_replace("%po_titel%", $postings['po_titel_own'], $t['msg_new_posting_chatmail']); $text = str_replace("%po_ts%", $postings['po_date_own'], $text); $text = str_replace("%forum%", $postings['fo_name'], $text); $text = str_replace("%thema%", $postings['th_name'], $text); $text = str_replace("%user_from_nick%", $postings['u_nick'], $text); $text = str_replace("%po_titel_antwort%", $postings['po_titel_reply'], $text); $text = str_replace("%po_ts_antwort%", $postings['po_date_reply'], $text); $text = str_replace("%baum%", $baum, $text); mail_sende($postings['po_u_id_reply'], $an_u_id, $text, $betreff); break; case "E-Mail": if ($postings['threadord']) { $baum = erzeuge_baum($postings['threadord'], $postings['po_id_own'], $postings['po_id_thread']); } else { $baum = $postings['po_titel_own'] . " -> " . $postings['po_titel_reply']; } $betreff = str_replace("%po_titel%", $postings['po_titel_own'], $t['betreff_new_posting']); $text = str_replace("%po_titel%", $postings['po_titel_own'], $t['msg_new_posting_email']); $text = str_replace("%po_ts%", $postings['po_date_own'], $text); $text = str_replace("%forum%", $postings['fo_name'], $text); $text = str_replace("%thema%", $postings['th_name'], $text); $text = str_replace("%user_from_nick%", $postings['u_nick'], $text); $text = str_replace("%po_titel_antwort%", $postings['po_titel_reply'], $text); $text = str_replace("%po_ts_antwort%", $postings['po_date_reply'], $text); $text = str_replace("%baum%", $baum, $text); email_versende($postings['po_u_id_reply'], $an_u_id, $text, $betreff); break; case "SMS": $text = str_replace("%po_titel%", $postings['po_titel_own'], $t['msg_new_posting_sms']); $text = str_replace("%po_ts%", $postings['po_date_own'], $text); $text = str_replace("%forum%", $postings['fo_name'], $text); $text = str_replace("%thema%", $postings['th_name'], $text); sms_sende($an_u_id, $an_u_id, $text); break; } } } // endif is_array } @mysql_free_result($query); }
<?php // eingabe.php muss mit id=$hash_id aufgerufen werden require "functions.php"; // Vergleicht Hash-Wert mit IP und liefert u_id, u_name, o_id, o_raum, o_js id_lese($id); if ($u_id) { // Ggf Farbe aktualisieren if (isset($farbe)) { if (strlen($farbe) == 6) { if (preg_match("/[a-f0-9]{6}/i", $farbe)) { $u_farbe = $farbe; $f['u_farbe'] = substr(htmlspecialchars($farbe), 0, 6); schreibe_db("user", $f, $u_id, "u_id"); system_msg("", 0, $u_id, $system_farbe, "<B>{$chat}:</B> " . "<FONT COLOR=\"#{$u_farbe}\">" . str_replace("%u_nick%", $u_nick, $t['farbe1']) . "</FONT>"); } } } // Default für Farbe setzen, falls undefiniert if (!isset($u_farbe)) { $u_farbe = $user_farbe; } // Fenstername $fenster = str_replace("+", "", $u_nick); $fenster = str_replace("-", "", $fenster); $fenster = str_replace("ä", "", $fenster); $fenster = str_replace("ö", "", $fenster); $fenster = str_replace("ü", "", $fenster); $fenster = str_replace("Ä", "", $fenster); $fenster = str_replace("Ö", "", $fenster); $fenster = str_replace("Ü", "", $fenster);
function html_parse($privat, $text, $at_sonderbehandlung = 0) { // Filtert Text, ersetzt Smilies und ersetzt folgende Zeichen: // _ in <B> // * in <I> // http(s)://###### oder www.###### in <A HREF="http(s)://###" TARGET=_new>http(s)://###</A> // E-Mail Adressen in A-Tag mit Mailto // privat ist wahr bei privater Nachricht global $admin, $smilies_pfad, $smilies_datei, $sprachconfig, $o_raum, $u_id, $u_level; global $t, $system_farbe, $erweitertefeatures, $conn, $smilies_anzahl, $smilies_config; global $ist_moderiert, $smilies_aus; // Grafik-Smilies ergänzen, falls Funktion aktiv und Raum ist nicht moderiert // Für Gäste gesperrt // $ist_moderiert ist in raum_ist_moderiert() (Caching!) gesetzt worden! if (!$ist_moderiert && $erweitertefeatures) { preg_match_all("/(&[^ ]+)/", $text, $test, PREG_PATTERN_ORDER); $anzahl = count($test[0]); if ($anzahl > 0) { if ($anzahl > $smilies_anzahl) { // Fehlermeldung ausgeben system_msg("", 0, $u_id, $system_farbe, $t[chat_msg54]); } elseif ($u_level == "G") { system_msg("", 0, $u_id, $system_farbe, $t[chat_msg55]); } // Prüfen, ob im aktuellen Raum smilies erlaubt sind if (!$privat) { $query = "SELECT r_smilie FROM raum WHERE r_id=" . intval($o_raum); $result = mysql_query($query, $conn); if ($result && mysql_num_rows($result) > 0 && mysql_result($result, 0, 0) != "Y") { $smilie_ok = FALSE; } else { $smilie_ok = TRUE; } } else { $smilie_ok = TRUE; } if ($smilies_aus == "1") { $smilie_ok = false; } // Konfiguration für smilies lesen if ($smilies_config) { @(require "conf/" . $smilies_config); } else { @(require "conf/" . $sprachconfig . "-" . $smilies_datei); } if (!$smilie_ok && $smilies_datei != "") { // Nur die Fehlermeldung ausgeben, falls es das angegeben Smile auch gibt $anzahl = 0; while (list($i, $smilie_code) = each($test[0])) { $smilie_code = str_replace("&", "&", $smilie_code); if ($smilie[$smilie_code]) { $anzahl++; } } if ($anzahl > 0) { system_msg("", 0, $u_id, $system_farbe, $t[chat_msg76]); } } else { while (list($i, $smilie_code) = each($test[0])) { if ($anzahl > $smilies_anzahl || $u_level == "G") { // Mehr als $smilies_anzahl Smilies sind nicht erlaubt $text = str_replace(" " . $smilie_code . " ", "", $text); } else { // Falls smilie existiert, ersetzen $smilie_code2 = str_replace("&", "&", $smilie_code); if (isset($smilie[$smilie_code2])) { $text = str_replace($smilie_code, "<SMIL SRC=\"" . $smilies_pfad . $smilie[$smilie_code2] . "\" SMIL>", $text); } } } } } } // doppelte Zeichen merken und wegspeichern... $text = str_replace("__", "###substr###", $text); $text = str_replace("**", "###stern###", $text); $text = str_replace("@@", "###klaffe###", $text); $text = str_replace("[", "###auf###", $text); $text = str_replace("]", "###zu###", $text); $text = str_replace("|", "###strich###", $text); $text = str_replace("+", "###plus###", $text); // jetzt nach nach italic und bold parsen... * in <I>, $_ in <B> if (substr_count($text, "http://") == 0 && substr_count($text, "https://") == 0 && substr_count($text, "www.") == 0 && !preg_match("(\\w[-._\\w]*@\\w[-._\\w]*\\w\\.\\w{2,3})", $text)) { $text = preg_replace('|\\*(.*?)\\*|', '<i>\\1</i>', preg_replace('|_(.*?)_|', '<b>\\1</b>', $text)); } // erst mal testen ob www oder http oder email vorkommen if (preg_match("/(https?:|www\\.|@)/i", $text)) { // Zerlegen der Zeile in einzelne Bruchstücke. Trennzeichen siehe $split // leider müssen zunächst erstmal in $text die gefundenen urls durch dummies // ersetzt werden, damit bei der Angabge von 2 gleichen urls nicht eine bereits // ersetzte url nochmal ersetzt wird -> gibt sonst Müll bei der Ausgabe. // wird evtl. später nochmal gebraucht... $split = '/[ ,\\[\\]\\(\\)]/'; $txt = preg_split($split, $text); // wieviele Worte hat die Zeile? for ($i = 500; $i >= 0; $i--) { if (isset($txt[$i]) && $txt[$i] != "") { break; } } $text2 = $text; // Schleife über alle Worte... for ($j = 0; $j <= $i; $j++) { // test, ob am Ende der URL noch ein Sonderzeichen steht... $txt[$j] = preg_replace("!\\?\$!", "", $txt[$j]); $txt[$j] = preg_replace("!\\.\$!", "", $txt[$j]); } for ($j = 0; $j <= $i; $j++) { // erst mal nick_replace, falls Wort mit "@" beginnt. if (substr($txt[$j], 0, 1) == "@") { $nick = nick_ergaenze($txt[$j], "raum", 1); // fehlermeldungen unterdrücken. if (($admin || $u_level == "A") && $nick['u_nick'] == "") { $nick = nick_ergaenze($txt[$j], "online", 1); } // fehlermeldungen unterdrücken. if ($nick['u_nick'] != "") { if ($at_sonderbehandlung == 1) { $rep = $nick[u_nick]; $text = preg_replace("!{$txt[$j]}!", $rep, $text); } else { $rep = "[" . $t['chat_spruch6'] . " " . $nick['u_nick'] . "] "; $text = $rep . preg_replace("!{$txt[$j]}!", "", $text); } } if ($u_level == "G") { break; } } if ($u_level != "G") { // E-Mail Adressen in A-Tag mit Mailto // E-Mail-Adresse -> Format = *@*.* if (preg_match('/^[\\w][\\w.-]*@[[:alnum:].-]+\\.[[:alnum:]-]{2,}$/', $txt[$j])) { // Aber im Prinzip müsste man sich die RFCs für Mailadressen und Domainnamen nochmal anschauen! // Wort=Mailadresse? -> im text durch dummie ersetzen, im wort durch href. $text = preg_replace("/!{$txt[$j]}!/", "####{$j}####", $text); // kranke lösung für ie: neues fenster mit mailto aufpoppen, dann gleich wieder schließen... $rep = "<a href=mailto:" . $txt[$j] . " onclick=\"ww=window.open('mailto:" . $txt[$j] . "','Chat_Klein','resizable=yes,scrollbars=yes,width=10,height=10'); ww.window.close(); return(false);\">" . $txt[$j] . "</a>"; $txt[$j] = preg_replace("/" . $txt[$j] . "/", $rep, $txt[$j]); } // www.###### in <A HREF="http://###" TARGET=_new>http://###</A> if (preg_match("/^www\\..*\\..*/", $txt[$j])) { // sonderfall -> "?" in der URL -> dann "?" als Sonderzeichen behandeln... $txt2 = preg_replace("!\\?!", "\\?", $txt[$j]); // Doppelcheck, kann ja auch mit http:// in gleicher Zeile nochmal vorkommen. also erst die // http:// mitrausnehmen, damit dann in der Ausgabe nicht http://http:// steht... $text = preg_replace("!http(s?)://{$txt2}!", "-###\$1{$j}####", $text); // Wort=URL mit www am Anfang? -> im text durch dummie ersetzen, im wort durch href. $text = preg_replace("!{$txt2}!", "####{$j}####", $text); // und den ersten Fall wieder Rückwärts, der wird ja später in der schleife nochmal behandelt. $text = preg_replace("!-###(s?)\\d*####/!", "http\$1://{$txt2}/", $text); // url aufbereiten $txt[$j] = preg_replace("/" . $txt2 . "/", "<a href=\"redirect.php?url=" . urlencode("http://{$txt2}") . "\" target=_blank>http://{$txt2}</a>", $txt[$j]); } // http(s)://###### in <A HREF="http(s)://###" TARGET=_new>http(s)://###</A> if (preg_match("!^https?://!", $txt[$j])) { // Wort=URL mit http(s):// am Anfang? -> im text durch dummie ersetzen, im wort durch href. // Zusatzproblematik.... könnte ein http-get-URL sein, mit "?" am Ende oder zwischendrin... urgs. // sonderfall -> "?" in der URL -> dann "?" als Sonderzeichen behandeln... $txt2 = preg_replace("!\\?!", "\\?", $txt[$j]); $text = preg_replace("!{$txt2}!", "####{$j}####", $text); // und wieder Rückwärts, falls zuviel ersetzt wurde... $text = preg_replace("!####\\d*####/!", "{$txt[$j]}/", $text); // url aufbereiten $txt[$j] = preg_replace("!{$txt2}!", "<a href=\"redirect.php?url=" . urlencode($txt2) . "\" target=_blank>{$txt2}</a>", $txt[$j]); } } } // nun noch die Dummy-Strings durch die urls ersetzen... for ($j = 0; $j <= $i; $j++) { // erst mal "_" in den dummy-strings vormerken... // es soll auch urls mit "_" geben ;-) $txt[$j] = str_replace("_", "###substr###", $txt[$j]); $text = preg_replace("![-#]###{$j}####!", $txt[$j], $text); } } // ende http, mailto, etc. // endif; // gemerkte @, _ und * zurückwandeln. $text = str_replace("###plus###", "+", $text); $text = str_replace("###strich###", "|", $text); $text = str_replace("###auf###", "[", $text); $text = str_replace("###zu###", "]", $text); $text = str_replace("###substr###", "_", $text); $text = str_replace("###stern###", "*", $text); $text = str_replace("###klaffe###", "@", $text); return $text; }
function bearbeite_moderationstexte($o_raum) { global $t; global $id; global $dbase, $conn; global $action; global $u_id; global $system_farbe; if (is_array($action)) { echo "<font><small>"; $a = 0; reset($action); // erst mal die Datensätze reservieren... while ($a < count($action)) { $key = key($action); // nur markieren, was noch frei ist. $query = "UPDATE moderation SET c_moderator={$u_id} WHERE c_id=" . intval($key) . " AND c_typ='N' AND c_moderator=0"; $result = mysql_query($query, $conn); next($action); $a++; } // jetzt die reservierten Aktionen bearbeiten. $a = 0; reset($action); while ($a < count($action)) { $key = key($action); // nur auswählen, was bereits von diesem Moderator reserviert ist $query = "SELECT * FROM moderation WHERE c_id=" . intval($key) . " AND c_typ='N' AND c_moderator={$u_id}"; $result = mysql_query($query, $conn); if ($result > 0) { if (mysql_num_rows($result) > 0) { $f = mysql_fetch_array($result); switch ($action[$key]) { case "ok": case "clear": case "thru": // vorbereiten für umspeichern... geht leider nicht 1:1, // weil fetch_array mehr zurückliefert als in $f[] sein darf... $c['c_von_user'] = $f['c_von_user']; $c['c_an_user'] = $f['c_an_user']; $c['c_typ'] = $f['c_typ']; $c['c_raum'] = $f['c_raum']; $c['c_text'] = $f['c_text']; $c['c_farbe'] = $f['c_farbe']; $c['c_zeit'] = $f['c_zeit']; $c['c_von_user_id'] = $f['c_von_user_id']; if ($action[$key] == "ok") { // eigene ID vermerken $c['c_moderator'] = $u_id; // Zeit löschen, damit markierte oben erscheint... unset($c['c_zeit']); } else { // freigeben -> id=0 schreiben $c['c_moderator'] = 0; } // und in moderations-tabelle schreiben if ($action[$key] == "thru") { unset($c['c_moderator']); schreibe_chat($c); } else { schreibe_moderiert($c); } break; case "notagain": system_msg("", 0, $f['c_von_user_id'], $system_farbe, $t['moderiertdel1']); system_msg("", 0, $f['c_von_user_id'], $system_farbe, ">>> " . $f['c_text']); break; case "better": system_msg("", 0, $f['c_von_user_id'], $system_farbe, $t['moderiertdel2']); system_msg("", 0, $f['c_von_user_id'], $system_farbe, ">>> " . $f['c_text']); break; case "notime": system_msg("", 0, $f['c_von_user_id'], $system_farbe, $t['moderiertdel3']); system_msg("", 0, $f['c_von_user_id'], $system_farbe, ">>> " . $f['c_text']); break; case "delete": system_msg("", 0, $f['c_von_user_id'], $system_farbe, $t['moderiertdel4']); system_msg("", 0, $f['c_von_user_id'], $system_farbe, ">>> " . $f['c_text']); break; } // jetzt noch aus moderierter Tabelle löschen. mysql_free_result($result); $query = "DELETE FROM moderation WHERE c_id=" . intval($key) . " AND c_moderator={$u_id}"; $result2 = mysql_query($query, $conn); } else { echo "{$t['mod9']}<br>"; } } next($action); $a++; } echo "</small></font>"; } }
// ID gesetzt? if (strlen($is_id) > 0) { $query = "SELECT is_infotext,is_domain,is_ip FROM ip_sperre " . "WHERE is_id=" . intval($is_id); $result = mysql_query($query); $rows = mysql_Num_Rows($result); if ($rows == 1) { // Zeile lese $row = mysql_fetch_object($result); $box = $ft0 . $t['sonst17'] . " " . $row->is_domain . $row->is_ip . $ft1; echo "<TABLE CELLPADDING=2 CELLSPACING=0 BORDER=0 WIDTH=100% BGCOLOR={$farbe_tabelle_kopf}>\n"; echo "<TR><TD>"; echo "<A HREF=\"javascript:window.close();\">" . "<IMG SRC=\"pics/button-x.gif\" ALT=\"schließen\" " . "WIDTH=15 HEIGHT=13 ALIGN=\"RIGHT\" BORDER=0></A>\n"; echo "<FONT SIZE=-1 COLOR={$farbe_text}><B>{$box}</B></FONT>\n"; echo "</TD></TR></TABLE>\n<PRE>" . $f1; if (!file_exists($traceroute)) { system_msg("", 0, $u_id, $system_farbe, "<b>config anpassen \$traceroute</b>"); } if (strlen($row->is_domain) > 0) { system("{$traceroute} {$row->is_domain}", $ergebnis); } else { system("{$traceroute} {$row->is_ip}", $ergebnis); } echo $f2 . "</PRE>\n"; } else { echo "<P>{$t['sonst9']}</P>\n"; } mysql_free_result($result); } echo "<IMG SRC=\"pics/fuell.gif\" ALT=\"\" WIDTH=4 HEIGHT=4><BR>\n"; liste(); break;
function nachricht_verlasse($r_id, $u_name, $r_name) { // Eintrittsnachricht in Raum schreiben // Aufruf mit Raum-Id, UserName, Raum-Name // liefert $back (ID des geschriebenen Datensatzes) zurück global $chat, $nachricht_v, $lustigefeatures, $u_farbe, $u_id; global $eintritt_individuell, $eintritt_useranzeige; // Nachricht Standard $text = $nachricht_v[0]; // Nachricht Lustiege ein/austrittsnachrichten if ($lustigefeatures) { reset($nachricht_v); $anzahl = count($nachricht_v); $text = $nachricht_v[mt_rand(1, $anzahl) - 1]; } // Nachricht auswählen if ($eintritt_individuell == "1") { $query = "SELECT u_austritt FROM user where u_nick = '" . mysql_real_escape_string($u_name) . "'"; $result = mysql_query($query); $row = mysql_fetch_object($result); if (strlen($row->u_austritt) > 0) { $text = $row->u_austritt; if ($eintritt_useranzeige == "1") { $text = htmlspecialchars($text) . " <b>({$u_name})</b> "; } else { $text = htmlspecialchars($text) . " <!-- <b>({$u_name})</b> -->"; } } mysql_free_result($result); } $text = str_replace("%u_name%", $u_name, $text); $text = str_replace("%r_name%", $r_name, $text); $text = preg_replace("|%nick%|i", $u_name, $text); $text = preg_replace("|%raum%|i", $r_name, $text); if (strlen($text) == 0) { $text = $u_name; } // Nachricht im Chat ausgeben; falls Raum moderiert ist, nur HTML-Kommentar ausgeben if (raum_ist_moderiert($r_id)) { $back = system_msg("", 0, $u_id, $u_farbe, "<b><<<</b> " . $text); } else { $back = global_msg($u_id, $r_id, "<b><<<</b> " . $text); } return $back; }