function handle_chat($type, $from, $data, $res) { global $connection; validate_required($data, 'message'); $text = htmlspecialchars(trim(preg_replace('/\\s+/', ' ', $data['message']))); $result = pg_query($connection, 'INSERT INTO chat VALUES(DEFAULT,' . $from->pieid . ',' . $from->user_id() . ',DEFAULT,\'' . pg_escape_string($text) . '\',DEFAULT) RETURNING id, timestamp'); $row = pg_fetch_array($result); $msg = chat_msg(array('from' => $from, 'message' => $text, 'id' => $row['id'], 'date' => $row['timestamp'])); if ($data['type'] == 'public') { $res->to_pie($from, $msg); $res->stat_pie($from, 'chat', 'sends', '++'); } else { $to = find_session_by_nick($from, $data['target_nick']); $res->to_session($from, $msg); $res->to_session($to, $msg); } }
schreibe_db("online", $f, $o_id, "o_id"); // Prüfen wieviel Byte ind wieviel Zeilen in den letzten $chat_max_zeit Sekunden geschrieben wurde if (array_sum($neu_spam_zeilen) > $chat_max_zeilen || array_sum($neu_spam_byte) > $chat_max_byte) { $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)) {