示例#1
0
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);
    }
}
示例#2
0
         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)) {