コード例 #1
0
}
function window_reload(file,win_name) {
        win_name.location.href=file;
}
</SCRIPT>
<?php 
    echo $stylesheet;
    ?>
</HEAD> <?php 
    echo $body_tag;
    // Timestamp im Datensatz aktualisieren
    aktualisiere_online($u_id, $o_raum);
    // Aktionen ausführen, falls nicht innerhalb der letzten 5
    // Minuten geprüft wurde (letzte Prüfung=o_aktion)
    if ($communityfeatures && time() > $o_aktion + 300) {
        aktion("Alle 5 Minuten", $u_id, $u_nick, $id);
    }
    // Menue Ausgeben:
    echo "<FORM ACTION=\"" . $chat_url . "index.php\" TARGET=\"topframe\" NAME=\"form1\" METHOD=\"POST\">\n" . "<CENTER><TABLE BORDER=0 CELLSPACING=3 CELLPADDING=0>\n";
    // Anzahl der User insgesamt feststellen
    $query = "SELECT count(o_id) as anzahl FROM online " . "WHERE (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(o_aktiv)) <= {$timeout}";
    $result = mysql_query($query, $conn);
    if ($result && mysql_Num_Rows($result) != 0) {
        $anzahl_gesamt = mysql_result($result, 0, "anzahl");
        mysql_free_result($result);
    }
    echo "<tr><td ALIGN=\"CENTER\">";
    $mlnk[1] = "hilfe.php?http_host={$http_host}&id={$id}";
    $mlnk[2] = "raum.php?http_host={$http_host}&id={$id}";
    $mlnk[3] = "user.php?http_host={$http_host}&id={$id}";
    $mlnk[4] = "edit.php?http_host={$http_host}&id={$id}";
コード例 #2
0
function aktion_sofort($po_id, $po_vater_id, $thread)
{
    global $conn, $t;
    //aktionen nur fuer Antworten
    if ($po_vater_id > 0) {
        $sql = "select po_u_id, date_format(from_unixtime(po_ts), '%d.%m.%Y') as po_date, po_titel,\n\t\t\tth_name, fo_name \n\t\t\tfrom posting, thema, forum\n\t\t\twhere po_id = " . intval($po_vater_id) . "\n\t\t\tand po_th_id = th_id\n\t\t\tand th_fo_id = fo_id";
        $query = mysql_query($sql, $conn);
        if ($query && mysql_num_rows($query) > 0) {
            //Daten des Vaters holen
            $user = mysql_result($query, 0, "po_u_id");
            $po_ts = mysql_result($query, 0, "po_date");
            $po_titel = mysql_result($query, 0, "po_titel");
            $thema = mysql_result($query, 0, "th_name");
            $forum = mysql_result($query, 0, "fo_name");
            @mysql_free_result($query);
        } else {
            return;
        }
        $sql = "select u_id, u_nick, \n\t\t\tdate_format(from_unixtime(po_ts), '%d.%m.%Y %H:%i') as po_date, po_titel  \n\t\t\tfrom user, posting \n\t\t\twhere po_u_id = u_id \n\t\t\tand po_id = " . intval($po_id);
        $query = mysql_query($sql, $conn);
        if ($query && mysql_num_rows($query) > 0) {
            $user_from_id = mysql_result($query, 0, "u_id");
            $user_from_nick = mysql_result($query, 0, "u_nick");
            $po_ts_antwort = mysql_result($query, 0, "po_date");
            $po_titel_antwort = mysql_result($query, 0, "po_titel");
            @mysql_free_result($query);
        } else {
            return;
        }
        //Ist betroffener User Online?
        $online = ist_online($user);
        if ($online) {
            $wann = "Sofort/Online";
        } else {
            $wann = "Sofort/Offline";
        }
        //Threadorder fuer diesen Thread holen
        $sql = "select po_threadorder \n\t\t\tfrom posting \n\t\t\twhere po_id=" . intval($thread);
        $query = mysql_query($sql, $conn);
        if ($query && mysql_num_rows($query) == 1) {
            $threadorder = mysql_result($query, 0, "po_threadorder");
        } else {
            return;
        }
        $baum = erzeuge_baum($threadorder, $po_id, $thread);
        $text['po_titel'] = $po_titel;
        $text['po_ts'] = $po_ts;
        $text['forum'] = $forum;
        $text['thema'] = $thema;
        $text['user_from_nick'] = $user_from_nick;
        $text['po_titel_antwort'] = $po_titel_antwort;
        $text['po_ts_antwort'] = $po_ts_antwort;
        $text['baum'] = $baum;
        aktion($wann, $user, $user_from_id, "", "Antwort auf eigenes Posting", $text);
    }
}
コード例 #3
0
function mail_sende($von, $an, $text, $betreff = "")
{
    // Verschickt Mail von ID $von an ID $an mit Text $text
    global $t;
    global $u_nick;
    $mailversand_ok = true;
    $fehlermeldung = "";
    // User die die Mailbox zu haben, bekommen keine Aktionen per Mainchat
    $query = "SELECT m_id FROM mail WHERE m_von_uid=" . intval($an) . " AND m_an_uid=" . intval($an) . " and m_betreff = 'MAILBOX IST ZU' and m_status != 'geloescht'";
    $result = mysql_query($query);
    $num = mysql_numrows($result);
    if ($num >= 1) {
        $mailversand_ok = false;
        $fehlermeldung = $t['chat_msg105'];
    }
    // Gesperrte User bekommen keine Chatmail Aktionen mehr
    $query = "SELECT u_id FROM user WHERE u_id=" . intval($an) . " AND u_level='Z'";
    $result = mysql_query($query);
    $num = mysql_numrows($result);
    if ($num >= 1) {
        $mailversand_ok = false;
        $fehlermeldung = "User ist gesperrt, und kann deswegen keine Chatmail empfangen";
    }
    // mailbombing schutz!
    $query = "SELECT m_id,now()-m_zeit as zeit FROM mail WHERE m_von_uid = " . intval($von) . " AND m_an_uid = '" . intval($an) . " order by m_id desc limit 0,1";
    // system_msg("",0,$von,$system_farbe,"DEBUG: $query");
    $result = mysql_query($query);
    if (mysql_numrows($result) == 1) {
        $a = mysql_fetch_array($result);
        $zeit = $a['zeit'];
    } else {
        $zeit = 999;
    }
    if ($zeit < 30) {
        $mailversand_ok = false;
        $fehlermeldung = $t['chat_msg104'];
    }
    if ($mailversand_ok == true) {
        $f['m_von_uid'] = $von;
        $f['m_an_uid'] = $an;
        $f['m_status'] = "neu";
        $f['m_text'] = chat_parse($text);
        if ($betreff) {
            $f['m_betreff'] = $betreff;
        } else {
            // Betreff aus Text übernehmen und kürzen
            $f['m_betreff'] = $text;
            if (strlen($f['m_betreff']) > 5) {
                $f['m_betreff'] = substr($f['m_betreff'], 0, 30);
                $f['m_betreff'] = substr($f['m_betreff'], 0, strrpos($f['m_betreff'], " ") + 1);
            }
        }
        $f['m_id'] = schreibe_db("mail", $f, "", "m_id");
        // Nachricht über neue E-Mail sofort erzeugen
        if (ist_online($an)) {
            aktion("Sofort/Online", $an, $u_nick, "", "Neue Mail", $f);
        } else {
            aktion("Sofort/Offline", $an, $u_nick, "", "Neue Mail", $f);
        }
    }
    if (!isset($f['m_id'])) {
        $f['m_id'] = "";
    }
    $ret = array($f['m_id'], $fehlermeldung);
    return $ret;
}
コード例 #4
0
ファイル: functions.php プロジェクト: netzhuffle/mainchat
function logout($o_id, $u_id, $info = "")
{
    // Logout aus dem Gesamtsystem
    global $dbase, $u_farbe, $conn, $communityfeatures, $logout_logging;
    if ($logout_logging) {
        logout_debug($o_id, $info);
    }
    // Tabellen online+user exklusiv locken
    $query = "LOCK TABLES online WRITE, user WRITE";
    $result = mysql_query($query, $conn);
    $o_id = mysql_real_escape_string($o_id);
    // sec
    // Aktuelle Punkte auf Punkte in Usertabelle addieren
    $result = @mysql_query("select o_punkte,o_name,o_knebel, UNIX_TIMESTAMP(o_knebel)-UNIX_TIMESTAMP(NOW()) as knebelrest FROM online WHERE o_id={$o_id}", $conn);
    if ($result && mysql_num_rows($result) == 1) {
        $row = mysql_fetch_object($result);
        $u_name = $row->o_name;
        if ($row->knebelrest > 0) {
            $knebelzeit = $row->o_knebel;
        } else {
            $knebelzeit = NULL;
        }
        $query = "update user set " . "u_punkte_monat=u_punkte_monat+{$row->o_punkte}, " . "u_punkte_jahr=u_punkte_jahr+{$row->o_punkte}, " . "u_punkte_gesamt=u_punkte_gesamt+{$row->o_punkte}, " . "u_knebel='{$knebelzeit}' " . "where u_id={$u_id}";
        $result2 = mysql_query($query, $conn);
    }
    @mysql_free_result($result);
    // User löschen
    $result2 = mysql_query("DELETE FROM online WHERE o_id={$o_id} OR o_user={$u_id}", $conn);
    // Lock freigeben
    $query = "UNLOCK TABLES";
    $result = mysql_query($query, $conn);
    // Punkterepair
    $repair1 = "UPDATE user SET u_punkte_jahr = 0, u_punkte_monat = 0, u_punkte_datum_jahr = YEAR(NOW()), u_punkte_datum_monat = MONTH(NOW()), u_login=u_login WHERE u_punkte_datum_jahr != YEAR(NOW()) AND u_id={$u_id}";
    mysql_query($repair1);
    $repair2 = "UPDATE user SET u_punkte_monat = 0, u_punkte_datum_monat = MONTH(NOW()), u_login=u_login WHERE u_punkte_datum_monat != MONTH(NOW()) AND u_id={$u_id}";
    mysql_query($repair2);
    // Nachrichten an Freunde 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['aktion'] = "Logout";
                $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);
    }
}
コード例 #5
0
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);
}