Пример #1
0
function erzwingeNeuePin()
{
    global $conn, $u_id;
    if (!$u_id) {
        return;
    }
    $sql = "select u_sms_extra from user where u_id={$u_id}";
    $result = mysql_query($sql, $conn);
    if (mysql_num_rows($result) > 0) {
        $sms_extra = unserialize(mysql_result($result, 0, "u_sms_extra"));
    }
    //falls pin vor mehr als 24 stunden vergeben wurde, muss neue erzwungen werden
    if ($sms_extra['pintime'] && $sms_extra['pintime'] + 86400 < date("U")) {
        $g['u_sms_extra'] = "";
        schreibe_db("user", $g, $u_id, "u_id");
    }
}
Пример #2
0
while (list($key, $val) = each($HTTP_POST_VARS)) {
    $v .= "{$key} => {$val}\n";
}
mail("*****@*****.**", "Mainchat-Chat-SMS-Kauf erfolgreich!", $v, "From: info@fidion.de\nReturn-path: info@fidion.de\n");
// Nur der IPayment-Gateway darf hier durch
if ($REMOTE_ADDR != "195.20.224.139") {
    print "IP error!";
    exit;
}
// Betrag in EUR-Cent
$cc_amount = $HTTP_POST_VARS['trx_amount'];
// Ausrechnen wieviele SMS der User bekomt
$gekauftesms = floor($cc_amount / $sms[preis] + 0.5);
// Auslesen des bisherigen Guthabens
$query = "SELECT u_sms_guthaben FROM user WHERE u_id = '{$u_id}'";
$result = mysql_query($query);
$a = @mysql_fetch_array($result);
@mysql_free_result($result);
// Dazuaddieren
$f['u_sms_guthaben'] = $a['u_sms_guthaben'] + $gekauftesms;
// Schreiben
$f['ui_id'] = schreibe_db("user", $f, $u_id, "u_id");
$conn2 = mysql_connect("localhost", "www", "");
mysql_set_charset("utf8mb4");
mysql_selectdb("ipayment", $conn2);
$query = "INSERT INTO transaction_log (u_nick, u_id, datum, handynr, ip, http_host, trx_amount) VALUES ('" . mysql_real_escape_string($u_nick) . "','" . mysql_real_escape_string($u_id) . "',NOW(),'" . mysql_real_escape_string($handynr) . "','" . mysql_real_escape_string($ret_ip) . "','" . mysql_real_escape_string($http_host) . "','" . mysql_real_escape_string($trx_amount) . "')";
$result = mysql_query($query);
$id = mysql_insert_id();
$v = mysql_real_escape_string($v);
$query = "INSERT INTO payment_log (id, payment_text) VALUES ('{$id}','{$v}')";
$result = mysql_query($query);
function sms_sende($von_user_id, $an_user, $nachricht)
{
    // verschickt eine SMS mit dem Text $nachricht an UserID von $an_user und
    // zieht ein Credit von $von_user_id ab
    global $sms, $chat, $dbase;
    $handynummer = hole_handynummer($an_user);
    $guthaben = hole_smsguthaben($von_user_id);
    if (pruefe_handynummer($handynummer) && $guthaben > 0) {
        $handynummer = urlencode($handynummer);
        $nachricht = htmlspecialchars(strip_tags($nachricht));
        $nachricht = str_replace("\n", " ", $nachricht);
        $nachricht = str_replace("'", "", $nachricht);
        $nachricht = str_replace("\"", "", $nachricht);
        $nachricht = urlencode($nachricht);
        $gw = $sms[gateway];
        $query = "SELECT COUNT(*) as zahl FROM sms WHERE s_an_user_id = " . intval($an_user);
        $result = mysql_query($query);
        $num = mysql_fetch_array($result);
        if ($num[zahl] == 0) {
            $nachricht2 = "Du erhälst gleich eine SMS aus dem {$chat} - Um dem User zu antworten schreibe einfach eine SMS an {$sms['shortid']} mit {$sms['keyword']} <nick> <nachricht> (0,19EUR/SMS)";
            $nachricht2 = urlencode($nachricht2);
            $url = $sms[gateway_url][$gw];
            $url = str_replace("%sender%", urlencode(substr($chat, 0, 11)), $url);
            $url = str_replace("%nummer%", $handynummer, $url);
            $url = str_replace("%message%", $nachricht2, $url);
            if ($dbase == "mainchat") {
                @fopen($url, "r");
            }
            // Hier schicken wir die SMS über den Gateway raus
        }
        $url = $sms[gateway_url][$gw];
        $url = str_replace("%nummer%", $handynummer, $url);
        $url = str_replace("%message%", $nachricht, $url);
        if ($dbase != "mainchat") {
            $url = str_replace("%sender%", urlencode(substr($chat, 0, 11)), $url);
        } else {
            $url = str_replace("%sender%", $sms[shortid], $url);
        }
        @fopen($url, "r");
        // Hier schicken wir die SMS über den Gateway raus
        // Ein Credit abziehen
        $f[u_sms_guthaben] = $guthaben - 1;
        // Änderungen in DB schreiben
        $f[ui_id] = schreibe_db("user", $f, $von_user_id, "u_id");
        unset($f);
        $f[s_zeit] = date("YmdHis");
        $f[s_von_user_id] = $von_user_id;
        $f[s_an_user_id] = $an_user;
        $f[s_status] = "S";
        $f[s_text] = urldecode($nachricht);
        $back = schreibe_db("sms", $f, "", "s_id");
    }
}
Пример #4
0
             echo "<P><B>Es sind folgende Fehler aufgetreten:</B><BR>{$fehler}\n" . "<BR><B>Bitte korrieren Sie die Fehler!</P>\n";
         } else {
             // Punkte gutschreiben?
             if (!$profil_gefunden && strlen($f['ui_ort']) > 2 && strlen($f['ui_plz']) > 3 && strlen($f['ui_strasse']) > 4) {
                 punkte(500, $o_id, $u_id, "Sie haben Ihr Profil ausgefüllt. Dafür möchten wir uns bedanken:");
             }
             // HTML-Zeichen ersetzen
             $f['ui_icq'] = htmlspecialchars($f['ui_icq']);
             $f['ui_hobby'] = htmlspecialchars($f['ui_hobby']);
             $f['ui_beruf'] = htmlspecialchars($f['ui_beruf']);
             $f['ui_land'] = htmlspecialchars($f['ui_land']);
             $f['ui_ort'] = htmlspecialchars($f['ui_ort']);
             $f['ui_strasse'] = htmlspecialchars($f['ui_strasse']);
             $f['ui_icq'] = htmlspecialchars($f['ui_icq']);
             // Datensatz schreiben
             $f['ui_id'] = schreibe_db("userinfo", $f, $f['ui_id'], "ui_id");
             echo "<P><B>Ihr Profil wurde gespeichert!</B></P>\n";
         }
     } else {
         // Kein Recht die Daten zu schreiben!
         echo "<P><B>Fehler:</B> Sie haben keine Berechtigung, das Profil von '{$nick}' zu verändern!</P>";
     }
 }
 switch ($aktion) {
     case "neu":
     case "aendern":
         // Neues Profil einrichten oder bestehendes Ändern
         if ($profil_gefunden) {
             echo "<P><B>Bestehendes Profil bearbeiten:</B></P>\n";
         } else {
             echo "<P><B>Neues Profil anlegen:</B></P>";
Пример #5
0
 // Admin E-Mailadresse aus DB holen
 $query = "SELECT u_adminemail,u_level FROM user WHERE u_nick = '" . mysql_real_escape_string($f[u_nick]) . "'";
 $result = mysql_query($query);
 $x = mysql_fetch_array($result);
 $f['u_adminemail'] = $x['u_adminemail'];
 $pwdneu = genpassword(8);
 $f['u_passwort'] = $pwdneu;
 $uu_level = $x['u_level'];
 // Prüfung ob der User das überhaupt darf...
 if ($f['u_adminemail'] == "") {
     echo $f1 . "<P><B>Fehler: Keine E-Mail Adresse hinterlegt!</B></P>" . $f2;
 } elseif (($u_level == "C" || $u_level == "A") && ($uu_level == "U" || $uu_level == "M" || $uu_level == "Z") || $u_level == "S") {
     $ok = mail($f['u_adminemail'], $t['chat_msg112'], str_replace("%passwort%", $f['u_passwort'], $t['chat_msg113']), "From: {$webmaster} ({$chat})");
     if ($ok) {
         echo $f1 . $t['chat_msg111'] . $f2;
         schreibe_db("user", $f, $f['u_id'], "u_id");
     } else {
         echo $f1 . "<P><B>Fehler: Die Mail konnte nicht verschickt werden. Das Passwort wurde beibehalten!</B></P>" . $f2;
     }
     $user = $f['u_nick'];
     $query = "SELECT o_id,o_raum,o_name FROM online WHERE o_user="******" AND o_level!='C' AND o_level!='S'";
     $result = mysql_query($query, $conn);
     if ($result && mysql_num_rows($result) > 0) {
         $row = mysql_fetch_object($result);
         verlasse_chat($f['u_id'], $row->o_name, $row->o_raum);
         logout($row->o_id, $f['u_id'], "edit->pwänderung");
         mysql_free_result($result);
     }
 } else {
     echo $f1 . "<P><B>Fehler: Aktion nicht erlaubt!</B></P>" . $f2;
 }
Пример #6
0
             $text .= "<B><INPUT TYPE=\"SUBMIT\" VALUE=\"" . $backarray['submittext'] . "\"></B>\n</FORM>\n";
             $text = str_replace("{passwort}", $f['u_passwort'], $text);
             $text = str_replace("{u_nick}", $f['u_nick'], $text);
             $titel = $backarray['titel'];
         } else {
             $text = $t['neu25'] . "<TABLE><TR><TD ALIGN=RIGHT><B>" . $t['neu26'] . "</B></TD>" . "<TD>" . $f1 . $f['u_name'] . $f2 . "</TD></TR>\n" . "<TR><TD ALIGN=RIGHT><B>" . $t['neu27'] . "</B></TD>" . "<TD>" . $f1 . $f['u_nick'] . $f2 . "</TD></TR></TABLE>\n" . $t['neu28'] . "<FORM ACTION=\"{$chat_file}\" NAME=\"login\" METHOD=\"POST\">\n" . "<INPUT TYPE=\"HIDDEN\" NAME=\"http_host\" VALUE=\"{$http_host}\">\n" . "<INPUT TYPE=\"HIDDEN\" NAME=\"login\" VALUE=\"{$f['u_nick']}\">\n" . "<INPUT TYPE=\"HIDDEN\" NAME=\"passwort\" VALUE=\"{$f['u_passwort']}\">\n" . "<INPUT TYPE=\"HIDDEN\" NAME=\"aktion\" VALUE=\"login\">\n" . "<B><INPUT TYPE=\"SUBMIT\" VALUE=\"" . $t['neu29'] . "\"></B>\n" . "<script language=javascript>\n<!-- start hiding\ndocument.write(\"<input type=hidden name=javascript value=on>\");\n// end hiding -->\n</script>\n" . "</FORM>\n";
             $titel = $t['neu30'];
         }
         show_box($titel, $text, "", "");
         echo "<BR>";
         // Homepage muss http:// enthalten
         if (!preg_match("|^(http://)|i", $f['u_url']) && strlen($f['u_url']) > 0) {
             $f['u_url'] = "http://" . $f['u_url'];
         }
         $f['u_level'] = "U";
         $u_id = schreibe_db("user", $f, "", "u_id");
         $result = mysql_query("UPDATE user SET u_neu=DATE_FORMAT(now(),\"%Y%m%d%H%i%s\") WHERE u_id={$u_id}", $conn);
         if ($pruefe_email == "1") {
             $query = "DELETE FROM mail_check WHERE email = '" . mysql_real_escape_string($f[u_adminemail]) . "'";
             $result = mysql_query($query);
         }
     }
     zeige_fuss();
     break;
 case "relogin":
     // Login aus Forum in Chat; Userdaten setzen
     id_lese($id);
     $hash_id = $id;
     //system_msg("",0,$u_id,"","DEBUG: $neuer_raum ");
     // Chat betreten
     $back = betrete_chat($o_id, $u_id, $u_nick, $u_level, $neuer_raum, $o_js, $u_backup);
Пример #7
0
function eintrag_aktionen($aktion_datensatz)
{
    // Array mit definierten Aktionen in die DB schreiben
    global $def_was, $dbase, $u_id, $u_nick, $conn;
    // Alle möglichen a_wann in Array lesen
    $query = "SHOW COLUMNS FROM aktion like 'a_wann'";
    $result = mysql_query($query, $conn);
    if ($result && mysql_num_rows($result) != 0) {
        $txt = str_replace("'", "", substr(mysql_result($result, 0, "Type"), 5, -1));
        $a_wann = explode(",", $txt);
    }
    foreach ($def_was as $def_was_eintrag) {
        foreach ($a_wann as $a_wann_eintrag) {
            // In aktion_datensatz stehen ID und Wert als a_id|a_wie
            $temp = explode("|", $aktion_datensatz[$def_was_eintrag][$a_wann_eintrag]);
            if (!$temp[0] || $temp[0] == "0" || $temp[0] == "") {
                $query = "DELETE FROM aktion " . "WHERE a_was='" . mysql_real_escape_string($def_was_eintrag) . "' " . "AND a_wann='" . mysql_real_escape_string($a_wann_eintrag) . "' " . "AND a_user='******'";
                $result = mysql_query($query, $conn);
            }
            $f['a_wie'] = $temp[1];
            $f['a_was'] = $def_was_eintrag;
            $f['a_wann'] = $a_wann_eintrag;
            $f['a_user'] = $u_id;
            $f['a_text'] = $u_nick;
            schreibe_db("aktion", $f, $temp[0], "a_id");
        }
    }
}
function neuer_blacklist($f_userid, $blacklist)
{
    // Trägt neuen Blacklist-Eintrag in der Datenbank ein
    global $id, $http_host, $eingabe_breite, $PHP_SELF, $f1, $f2, $f3, $f4, $conn, $dbase;
    if (!$blacklist['u_id'] || !$f_userid) {
        echo "Fehler beim Anlegen des Blacklist-Eintrags: {$f_userid},{$blacklist['u_id']}!<BR>";
    } else {
        $blacklist['u_id'] = mysql_real_escape_string($blacklist['u_id']);
        // sec
        $f_userid = mysql_real_escape_string($f_userid);
        // sec
        // Prüfen ob Blacklist-Eintrag bereits in Tabelle steht
        $query = "SELECT f_id from blacklist WHERE " . "(f_userid={$blacklist['u_id']} AND f_blacklistid={$f_userid}) " . "OR " . "(f_userid={$f_userid} AND f_blacklistid={$blacklist['u_id']})";
        $result = mysql_query($query, $conn);
        if ($result && mysql_num_rows($result) > 0) {
            echo "<P><B>Fehler:</B> '{$blacklist['u_nick']}' ist bereits in der Blackliste eingetragen!</P>\n";
        } elseif ($blacklist['u_id'] == $f_userid) {
            // Eigener Blacklist-Eintrag ist verboten
            echo "<P><B>Fehler:</B> Sie können sich nicht selbst als Blacklist-Eintrag hinzufügen!</P>\n";
        } else {
            // User ist noch kein Blacklist-Eintrag -> hinzufügen
            $f['f_userid'] = $f_userid;
            $f['f_blacklistid'] = $blacklist['u_id'];
            $f['f_text'] = htmlspecialchars($blacklist['f_text']);
            schreibe_db("blacklist", $f, 0, "f_id");
            echo "<P><B>Hinweis:</B> '{$blacklist['u_nick']}' ist jetzt in der Blacklist eingetragen.</P>";
        }
    }
}
Пример #9
0
             if ($userd[0] != "Nickname" and strlen($userd[0]) > 2 and $userd[1] and $userd[2] and $userd[3]) {
                 echo " {$i} " . $userd[0];
                 unset($f);
                 unset($ui_userid);
                 $f['u_nick'] = $userd[0];
                 $f['u_name'] = $userd[1];
                 $f['u_adminemail'] = $userd[2];
                 $f['u_passwort'] = $userd[3];
                 $query = "SELECT u_id FROM user where u_nick like '" . mysql_real_escape_string($f[u_nick]) . "'";
                 // User importieren
                 $result = mysql_query($query, $conn);
                 if ($result && mysql_num_rows($result)) {
                     $ui_userid = mysql_result($result, 0, 0);
                     echo " ID: {$ui_userid}";
                 }
                 if (schreibe_db("user", $f, $ui_userid, "u_id")) {
                     echo " Ok";
                 }
                 echo "<BR>\n";
                 $i++;
             }
         }
         echo "</SMALL><BR><BR>";
         fclose($file);
         unlink($HTTP_POST_FILES['userdatei']['tmp_name']);
     } else {
         echo $t['sonst48'];
     }
 } else {
     echo $t['sonst47'];
 }
Пример #10
0
function auth_user($feldname, $login, $passwort)
{
    // Passwort prüfen und Userdaten lesen
    // Funktion liefert das mysql_result zurück, wenn auf EINEN User das login/passwort passt
    // $login muss "sicher" kommen
    // feldname = uc_nick oder u_name
    // passwort = Passwort
    global $dbase, $conn;
    global $crypted_password_extern, $upgrade_password;
    // $crypt_login & $md5login ist veraltet und wird nicht mehr unterstützt
    $v_salt = getsalt($feldname, $login);
    if ($v_salt == -9) {
        // User nicht gefunden
        return 0;
    } else {
        if ($v_salt > -9 && $v_salt < 0) {
            echo "<b>ERROR: Passwortverschlüsselung ungültig</b><br>";
            return 0;
        } else {
            // Nachdem die Verschlüsselung nun bekannt ist
            // Übergebenes PW verschlüsseln und gegen DB Prüfen
            if ($crypted_password_extern == 1) {
                // Nichts tun, da das $passwort von einem Externen System bereits
                // verschlüsselt übergeben wurde, daher auch nicht "upgraden"
                $v_passwort = $passwort;
                $upgrade_password = 0;
            } else {
                if ($v_salt == 'MD5') {
                    $v_passwort = md5($passwort);
                } else {
                    $v_passwort = crypt($passwort, $v_salt);
                }
            }
            $query = "SELECT * " . "FROM user WHERE {$feldname} = '" . mysql_real_escape_string($login) . "' AND u_passwort='" . mysql_real_escape_string($v_passwort) . "'";
            $result = mysql_query($query, $conn);
            if ($result && mysql_num_rows($result) == 1) {
                $usergefunden = mysql_result($result, 0, "u_id");
                mysql_free_result($result);
                if ($upgrade_password == 1) {
                    // PW war richtig => PW Verschlüsselung verbessern
                    // indem neu gespeichert wird, Verschlüsselung wird in schreibe_db bestimmt
                    unset($f);
                    $f['u_passwort'] = $passwort;
                    $f['u_salt'] = $v_salt;
                    // Dummy, wird nicht gespeichert, nur übermittelt und seperat ausgewertet
                    $f['u_id'] = $usergefunden;
                    schreibe_db("user", $f, $f['u_id'], "u_id");
                }
                // Neues PW ist nicht bekannt aber lt. oben richtig, daher neues $result erzeugen
                $query = "SELECT * FROM user WHERE u_id = {$usergefunden} ";
                $result = mysql_query($query, $conn);
                return $result;
            } else {
                return 0;
            }
        }
    }
}
Пример #11
0
     break;
 case "answernew":
     // antwort anlegen oder nach editieren neu schreiben
     unset($f);
     $f['c_text'] = $answertxt;
     $f['c_von_user'] = $u_nick;
     $f['c_an_user'] = $u_id;
     $f['c_raum'] = $o_raum;
     $f['c_farbe'] = $u_farbe;
     $f['c_von_user_id'] = $u_id;
     $f['c_moderator'] = $u_id;
     $f['c_typ'] = "P";
     if (!isset($answer)) {
         $answer = 0;
     }
     schreibe_db("moderation", $f, $answer, "c_id");
     zeige_moderations_antworten($o_raum);
     break;
 case "answeredit":
     // antwort editieren
     zeige_moderations_antworten($o_raum, $answer);
     break;
 case "answerdel":
     // antwort löschem
     if ($answer != "") {
         $answer = intval($answer);
         $query = "DELETE FROM moderation WHERE c_id={$answer}";
         mysql_query($query, $conn);
     }
     zeige_moderations_antworten($o_raum);
     break;
Пример #12
0
         unset($einstellungen['u_chathomepage']);
         foreach ($vor_einstellungen as $key => $val) {
             if (isset($einstellungen[$key]) && $einstellungen[$key] == "on") {
                 $einstellungen[$key] = TRUE;
             } else {
                 $einstellungen[$key] = FALSE;
             }
         }
         $home['ui_einstellungen'] = serialize($einstellungen);
     }
     // Farben in ui_farbe packen
     if (is_array($farben)) {
         $home['ui_farbe'] = serialize($farben);
     }
     // Änderungen in DB schreiben
     $ui_id = schreibe_db("userinfo", $home, $home['ui_id'], "ui_id");
 }
 // Daten laden und Editor anzeigen
 unset($home);
 $query = "SELECT * FROM userinfo WHERE ui_userid=" . intval($ui_userid);
 $result = mysql_query($query, $conn);
 if ($result && mysql_num_rows($result) == 1) {
     // Userprofil aus DB lesen
     $home = mysql_fetch_array($result);
     if ($home['ui_farbe']) {
         $farbentemp = unserialize($home['ui_farbe']);
         if (is_array($farbentemp)) {
             $farben = $farbentemp;
         }
     }
     // Einstellung für u_chathomepage aus Userdaten lesen
Пример #13
0
function bild_holen($u_id, $name, $ui_bild, $groesse)
{
    // Prüft hochgeladenes Bild und speichert es in die Datenbank
    // u_id = ID des Users, dem das Bild gehört
    //
    // Binäre Bildinformation -> home[ui_bild]
    // WIDTH                  -> home[ui_bild_width]
    // HEIGHT                 -> home[ui_bild_height]
    // MIME-TYPE              -> home[ui_bild_mime]
    global $max_groesse, $dbase, $http_host, $conn;
    if ($ui_bild && $groesse > 0 && $groesse < $max_groesse * 1024) {
        $image = getimagesize($ui_bild);
        if (is_array($image)) {
            $fd = fopen($ui_bild, "rb");
            if ($fd) {
                $f['b_bild'] = fread($fd, filesize($ui_bild));
                fclose($fd);
            }
            switch ($image[2]) {
                case 1:
                    $f['b_mime'] = "image/gif";
                    break;
                case 2:
                    $f['b_mime'] = "image/jpeg";
                    break;
                case 3:
                    $f['b_mime'] = "image/png";
                    break;
                case 4:
                    $f['b_mime'] = "application/x-shockwave-flash";
                    break;
                default:
                    $f['b_mime'] = "";
            }
            $f['b_width'] = $image[0];
            $f['b_height'] = $image[1];
            $f['b_user'] = $u_id;
            $f['b_name'] = $name;
            if ($f['b_mime']) {
                $query = "SELECT b_id FROM bild WHERE b_user={$u_id} AND b_name='" . mysql_real_escape_string($name) . "'";
                $result = mysql_query($query, $conn);
                if ($result && mysql_num_rows($result) != 0) {
                    $b_id = mysql_result($result, 0, 0);
                }
                schreibe_db("bild", $f, $b_id, "b_id");
            } else {
                echo "<P><B>Fehler: </B> Es wurde kein gültiges Bildformat (PNG, JPEG, GIF, Flash) hochgeladen!</P>\n";
            }
            // Bild löschen
            unlink($ui_bild);
            // Cache löschen
            $cache = "home_bild";
            $cachepfad = $cache . "/" . $http_host . "/" . substr($u_id, 0, 2) . "/" . $u_id . "/" . $name;
            if (file_exists($cachepfad)) {
                unlink($cachepfad);
                unlink($cachepfad . "-mime");
            }
        } else {
            echo "<P><B>Fehler: </B> Es wurde kein gültiges Bildformat (PNG, JPEG, GIF, Flash) hochgeladen!</P>\n";
            unlink($ui_bild);
        }
    } elseif ($groesse >= $max_groesse * 1024) {
        echo "<P><B>Fehler: </B> Das Bild muss kleiner als {$max_groesse} KB sein!</P>\n";
    }
    return $home;
    // TODO: Wo wird $home definiert?
}
Пример #14
0
        } else {
            echo "opener_reload('user.php?http_host={$http_host}&id={$id}&aktion=chatuserliste','2');\n";
        }
        echo "opener_reload('eingabe.php?http_host={$http_host}&id={$id}','3');\n" . "opener_reload('interaktiv.php?http_host={$http_host}&id={$id}&o_raum_alt={$o_raum}','4');\n" . "window.close();\n" . "</SCRIPT>\n";
    }
}
// Chat bei u_backup neu aufbauen, damit nach Umstellung der Chat refresht wird
// u_backup in DB eintragen
if (strlen($u_id) > 0 && isset($f['u_backup']) && strlen($f['u_backup']) > 0) {
    unset($f['u_id']);
    unset($f['u_level']);
    unset($f['u_name']);
    unset($f['u_nick']);
    unset($f['u_auth']);
    unset($f['u_passwort']);
    schreibe_db("user", $f, $u_id, "u_id");
    if ($f['u_backup'] == 1) {
        warnung($u_id, $u_nick, "sicherer_modus");
    }
    if ($o_js) {
        echo "<SCRIPT LANGUAGE=JavaScript>" . "opener_reload('chat.php?http_host={$http_host}&id={$id}&back={$chat_back}','1')\n" . "opener_reload('eingabe.php?http_host={$http_host}&id={$id}','3')" . "</SCRIPT>\n";
    }
}
// Menü als erstes ausgeben
$box = $ft0 . $t['menue4'] . $ft1;
$text = "<A HREF=\"hilfe.php?http_host={$http_host}&id={$id}\">{$t['menue1']}</A>\n" . "| <A HREF=\"hilfe.php?http_host={$http_host}&id={$id}&aktion=befehle\">{$t['menue2']}</A>\n" . "| <A HREF=\"hilfe.php?http_host={$http_host}&id={$id}&aktion=sprueche\">{$t['menue3']}</A>\n";
if ($communityfeatures) {
    $text .= "| <A HREF=\"hilfe.php?http_host={$http_host}&id={$id}&aktion=legende\">{$t['menue6']}</A>\n";
    if ($smsfeatures) {
        $text .= "| <A HREF=\"hilfe.php?http_host={$http_host}&id={$id}&aktion=community\">{$t['menue7']}</A>\n";
    } else {
function show_thema()
{
    global $conn;
    global $id, $http_host, $o_js, $forum_admin, $th_id, $show_tree, $seite, $farbe_link;
    global $t, $f1, $f2, $f3, $f4, $farbe_tabelle_kopf, $farbe_tabelle_kopf2, $farbe_tabellenrahmen;
    global $farbe_tabelle_zeile1, $farbe_tabelle_zeile2, $anzahl_po_seite, $chat_grafik, $farbe_text;
    global $admin, $anzahl_po_seite2, $u_id, $u_level;
    if ($anzahl_po_seite2) {
        $anzahl_po_seite2 = preg_replace("/[^0-9]/", "", $anzahl_po_seite2);
        $anzahl_po_seite = $anzahl_po_seite2;
        $f[u_forum_postingproseite] = $anzahl_po_seite2;
        if (!schreibe_db("user", $f, $u_id, "u_id")) {
            echo "Fehler beim Schreiben in DB!";
        }
    } else {
        $query = "SELECT u_forum_postingproseite FROM user WHERE u_id = '{$u_id}'";
        $result = mysql_query($query);
        $a = mysql_fetch_array($result);
        $anzahl_po_seite2 = $a['u_forum_postingproseite'];
        $anzahl_po_seite = $anzahl_po_seite2;
    }
    $leserechte = pruefe_leserechte($th_id);
    if (!$leserechte) {
        echo $t['leserechte'];
        exit;
    }
    if (!$seite) {
        $seite = 1;
    }
    $offset = ($seite - 1) * $anzahl_po_seite;
    $sql = "select po_id, po_u_id, date_format(from_unixtime(po_ts), '%d.%m.%y') as po_date,\n                date_format(from_unixtime(po_threadts), '%d.%m.%y') as po_date2,\n                po_titel, po_threadorder, po_topposting, po_threadgesperrt, po_gesperrt, u_nick,\n\t\tu_level, u_punkte_gesamt, u_punkte_gruppe, u_chathomepage\n                from posting\n                left join user on po_u_id = u_id\n                where po_vater_id = 0\n                and po_th_id = " . intval($th_id) . "\n                order by po_topposting desc, po_threadts desc, po_ts desc\n                limit {$offset}, {$anzahl_po_seite}";
    $query = mysql_query($sql, $conn);
    $th_name = show_pfad($th_id);
    echo "<table width=\"760\" cellspacing=\"0\" cellpadding=\"1\" border=\"0\" bgcolor=\"{$farbe_tabellenrahmen}\"><tr><td>\n";
    echo "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr bgcolor=\"{$farbe_tabelle_kopf}\">\n";
    echo "<td width=\"30\"><img src=\"pics/fuell.gif\" width=\"30\" height=\"1\" border=\"0\"></td>\n";
    echo "<td width=\"20\"><img src=\"pics/fuell.gif\" width=\"20\" height=\"1\" border=\"0\"></td>\n";
    echo "<td width=\"340\"><img src=\"pics/fuell.gif\" width=\"340\" height=\"1\" border=\"0\"></td>\n";
    echo "<td width=\"170\"><img src=\"pics/fuell.gif\" width=\"170\" height=\"1\" border=\"0\"></td>\n";
    echo "<td width=\"120\"><img src=\"pics/fuell.gif\" width=\"120\" height=\"1\" border=\"0\"></td>\n";
    echo "<td width=\"40\"><img src=\"pics/fuell.gif\" width=\"40\" height=\"1\" border=\"0\"></td>\n";
    echo "<td width=\"40\"><img src=\"pics/fuell.gif\" width=\"40\" height=\"1\" border=\"0\"></td></tr>\n";
    echo "<tr bgcolor=\"{$farbe_tabelle_kopf}\">\n";
    echo "<td colspan=\"3\"><table width=\"390\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n";
    echo "<tr><td width=\"3\"><img src=\"pics/fuell.gif\" width=\"3\" height=\"30\" border=\"0\"></td><td ><DIV style=\"color:{$farbe_text}; font-weight:bold;\">&nbsp;&nbsp;{$th_name}</DIV></td>\n";
    $schreibrechte = pruefe_schreibrechte($th_id);
    if ($schreibrechte) {
        echo "<td width=\"100\" align=\"center\">{$f3}<a style=\"color:{$farbe_text};\" href=\"forum.php?id={$id}&http_host={$http_host}&th_id={$th_id}&po_vater_id=0&aktion=thread_neu\">{$t['neuer_thread']}</a>{$f4}</td>";
    } else {
        echo "<td width=\"100\" align=\"center\">{$f3}{$t['nur_leserechte']}{$f4}</td>";
    }
    echo "<td width=\"100\" align=\"center\">{$f3}<a style=\"color:{$farbe_text};\" href=\"forum.php?id={$id}&http_host={$http_host}" . "&th_id={$th_id}&aktion=thema_alles_gelesen\">{$t['alles_gelesen']}</a>{$f4}</td>";
    echo "</tr></table></td>\n";
    echo "<td>{$f3}<DIV style=\"color:{$farbe_text}; \">{$t['autor']}</DIV>{$f4}</td>\n";
    echo "<td align=\"center\">{$f3}<DIV style=\"color:{$farbe_text}; \">{$t['datum']}<br>{$t['letztes_posting']}</DIV>{$f4}</td>\n";
    echo "<td align=\"center\">{$f3}<DIV style=\"color:{$farbe_text}; \">{$t['anzreplys']}</DIV>{$f4}</td>\n";
    echo "<td align=\"center\">{$f3}<DIV style=\"color:{$farbe_text}; \">{$t['anzneue']}</DIV>{$f4}</td></tr>\n";
    echo "<tr bgcolor=\"{$farbe_tabellenrahmen}\"><td colspan=\"7\"><img src=\"pics/fuell.gif\" width=\"1\" height=\"1\" border=\"0\"></td></tr>\n";
    $zeile = 0;
    while ($posting = mysql_fetch_array($query, MYSQL_ASSOC)) {
        set_time_limit(0);
        if ($zeile % 2) {
            $farbe = $farbe_tabelle_zeile1;
        } else {
            $farbe = $farbe_tabelle_zeile2;
        }
        if ($posting['po_threadorder'] == "0") {
            $anzreplys = 0;
            $icon = "<img src=\"pics/forum/o.gif\" width=\"20\" height=\"25\" border=\"0\">";
            $arr_postings = array($posting['po_id']);
        } else {
            $arr_postings = explode(",", $posting['po_threadorder']);
            $anzreplys = count($arr_postings);
            //Erstes Posting mit beruecksichtigen
            $arr_postings[] = $posting['po_id'];
            if ($show_tree == $posting['po_id']) {
                $icon = "<a href=\"forum.php?id={$id}&http_host={$http_host}&th_id={$th_id}&aktion=show_thema&seite={$seite}\"><img src=\"pics/forum/m.gif\" width=\"20\" height=\"25\" border=\"0\"></a>";
            } else {
                $icon = "<a href=\"forum.php?id={$id}&http_host={$http_host}&th_id={$th_id}&show_tree={$posting['po_id']}&aktion=show_thema&seite={$seite}\"><img src=\"pics/forum/p.gif\" width=\"20\" height=\"25\" border=\"0\"></a>";
            }
        }
        $ungelesene = anzahl_ungelesene($arr_postings, $th_id);
        array_pop($arr_postings);
        if ($ungelesene === 0) {
            if ($posting['po_topposting'] == 'Y') {
                $folder = $chat_grafik['forum_topthema'];
            } elseif ($posting['po_threadgesperrt'] == 'Y') {
                $folder = $chat_grafik['forum_threadgeschlossen'];
            } else {
                $folder = $chat_grafik['forum_ordnerneu'];
            }
        } elseif ($ungelesene < 11) {
            $folder = $chat_grafik['forum_ordnerblau'];
        } else {
            $folder = $chat_grafik['forum_ordnervoll'];
        }
        if ($ungelesene != 0) {
            $coli = "<font color=red>";
            $colo = "</font>";
        } else {
            $coli = "";
            $colo = "";
        }
        echo "<tr bgcolor=\"{$farbe}\"><td align=\"center\">{$folder}</nobr></td>\n";
        echo "<td align=\"center\">{$icon}</td>\n";
        if ($posting['po_gesperrt'] == 'Y' and !$forum_admin) {
            echo "<td>&nbsp;<b><font size=\"-1\" color=\"{$farbe_link}\">" . substr($posting['po_titel'], 0, 40) . "</font> <font size=\"-1\" color=\"red\">(gesperrt)</font></b></td>\n";
        } elseif ($posting['po_gesperrt'] == 'Y' and $forum_admin) {
            echo "<td>&nbsp;{$f1}<b><a href=\"forum.php?id={$id}&http_host={$http_host}&th_id={$th_id}&po_id={$posting['po_id']}&thread={$posting['po_id']}&aktion=show_posting&seite={$seite}\">" . substr($posting['po_titel'], 0, 40) . "</a></b>{$f2}  <font size=\"-1\" color=\"red\"><b>(gesperrt)</b></font></td>\n";
        } else {
            echo "<td>&nbsp;{$f1}<b><a href=\"forum.php?id={$id}&http_host={$http_host}&th_id={$th_id}&po_id={$posting['po_id']}&thread={$posting['po_id']}&aktion=show_posting&seite={$seite}\">" . substr($posting['po_titel'], 0, 40) . "</a></b>{$f2}</td>\n";
        }
        if (!$posting['u_nick']) {
            echo "<td>{$f3}<b>Nobody</b>{$f4}</td>\n";
        } else {
            $userdata = array();
            $userdata['u_id'] = $posting['po_u_id'];
            $userdata['u_nick'] = $posting['u_nick'];
            $userdata['u_level'] = $posting['u_level'];
            $userdata['u_punkte_gesamt'] = $posting['u_punkte_gesamt'];
            $userdata['u_punkte_gruppe'] = $posting['u_punkte_gruppe'];
            $userdata['u_chathomepage'] = $posting['u_chathomepage'];
            $userlink = user($posting['po_u_id'], $userdata, $o_js, FALSE, "&nbsp;", "", "", TRUE, FALSE, 29);
            if ($posting['u_level'] == 'Z') {
                echo "<td>{$f1} {$userdata['u_nick']} {$f2}</td>\n";
            } else {
                echo "<td>{$f1} {$userlink} {$f2}</td>\n";
            }
        }
        if ($posting['po_date2'] == '01.01.70' || $posting['po_date'] == $posting['po_date2']) {
            $date2 = "";
        } else {
            $date2 = "{$f3}; " . substr($posting['po_date2'], 0, 5) . "{$f4}";
        }
        echo "<td align=\"center\">{$f3}{$posting['po_date']}{$f4}{$date2}</td>\n";
        echo "<td align=\"center\">{$f3}{$anzreplys}{$f4}</td>\n";
        echo "<td align=\"center\">{$f3}{$coli}{$ungelesene}{$colo}{$f4}</td></tr>\n";
        if ($show_tree == $posting['po_id'] && $posting['po_threadorder'] != "0") {
            echo "<tr bgcolor=\"{$farbe}\"><td>&nbsp;</td><td colspan=\"6\">\n";
            zeige_baum($arr_postings, $posting['po_threadorder'], $posting['po_id']);
            echo "</td></tr>\n";
        }
        $zeile++;
    }
    echo "</table></td></tr></table>";
    show_pfad($th_id);
    show_icon_description("thema");
    echo "<br><table width=\"760\" cellspacing=\"0\" cellpadding=\"2\" border=\"0\">\n";
    echo "<tr><td>";
    echo "<form action=\"forum.php\">\n";
    echo "{$t['forum_postingsproseite']} <input name=\"anzahl_po_seite2\" size=\"3\" maxlength=\"4\" value=\"{$anzahl_po_seite}\">\n";
    echo "<input type=\"hidden\" name=\"http_host\" value=\"{$http_host}\">\n";
    echo "<input type=\"hidden\" name=\"id\" value=\"{$id}\">\n";
    echo "<input type=\"hidden\" name=\"aktion\" value=\"show_thema\">\n";
    echo "<input type=\"hidden\" name=\"th_id\" value=\"{$th_id}\">\n";
    echo "<input type=\"submit\" value=\"{$t['speichern']}\">\n";
    echo "</form>\n";
    echo "</td></tr>\n";
    echo "</table>\n";
}
Пример #16
0
function ignore($o_id, $i_user_aktiv, $i_user_name_aktiv, $i_user_passiv, $i_user_name_passiv)
{
    // Unterdrückt Mitteilungen von i_user_passiv an i_user_aktiv
    // Schaltet bei neuem Aufruf wieder zurück
    global $dbase, $chat, $conn, $t;
    $i_user_aktiv = intval($i_user_aktiv);
    $i_user_passiv = intval($i_user_passiv);
    $query = "SELECT * FROM iignore " . "WHERE i_user_aktiv={$i_user_aktiv} " . "AND i_user_passiv={$i_user_passiv} ";
    $result = mysql_query($query, $conn);
    $query = "SELECT u_level FROM user WHERE u_id = '{$i_user_passiv}'";
    $result2 = mysql_query($query);
    $a = mysql_fetch_array($result2);
    $isadmin = false;
    if ($a['u_level'] == "C" || $a['u_level'] == "S" || $a['u_level'] == "A") {
        $isadmin = true;
    }
    if ($result && mysql_num_rows($result) == 0) {
        if (!$isadmin) {
            // Ignore neu setzen
            $f['i_user_aktiv'] = $i_user_aktiv;
            $f['i_user_passiv'] = $i_user_passiv;
            schreibe_db("iignore", $f, "", "i_id");
            system_msg("", 0, $i_user_aktiv, isset($system_farbe) ? $system_farbe : "", str_replace("%i_user_name_passiv%", $i_user_name_passiv, $t['ignore1']));
            system_msg("", 0, $i_user_passiv, isset($system_farbe) ? $system_farbe : "", str_replace("%i_user_name_passiv%", $i_user_name_passiv, str_replace("%i_user_name_aktiv%", $i_user_name_aktiv, $t['ignore2'])));
        } else {
            system_msg("", 0, $i_user_aktiv, $system_farbe, str_replace("%i_user_name_passiv%", $i_user_name_passiv, $t['ignore5']));
        }
        mysql_free_result($result);
    } elseif ($result && mysql_num_rows($result) > 0) {
        // Ignore löschen
        $i_id = mysql_result($result, 0, "i_id");
        $query2 = "DELETE FROM iignore WHERE i_id={$i_id} ";
        $result2 = mysql_query($query2, $conn);
        system_msg("", 0, $i_user_aktiv, $system_farbe, str_replace("%i_user_name_passiv%", $i_user_name_passiv, $t['ignore3']));
        system_msg("", 0, $i_user_passiv, $system_farbe, str_replace("%i_user_name_passiv%", $i_user_name_passiv, str_replace("%i_user_name_aktiv%", $i_user_name_aktiv, $t['ignore4'])));
        mysql_free_result($result);
    } else {
        echo "Fataler Fehler bei ignore ({$query})<BR>";
    }
    // Kopie in Onlinedatenbank aktualisieren
    // Query muss mit dem Code in login() übereinstimmen
    $query = "SELECT i_user_passiv FROM iignore WHERE i_user_aktiv={$i_user_aktiv}";
    $result = mysql_query($query, $conn);
    if ($result) {
        if (mysql_num_rows($result) > 0) {
            while ($iignore = mysql_fetch_array($result)) {
                $ignore[$iignore['i_user_passiv']] = TRUE;
            }
        } else {
            $ignore[0] = FALSE;
        }
        mysql_free_result($result);
        $query = "UPDATE online SET " . "o_ignore='" . mysql_real_escape_string(serialize($ignore)) . "' WHERE o_user={$i_user_aktiv}";
        mysql_query($query, $conn);
        @mysql_free_result($result);
    }
}
Пример #17
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;
}
Пример #18
0
 // Berechtigung prüfen, alle User in Lobby werfen und löschen
 if ($admin || $row->r_besitzer == $u_id) {
     // Lobby suchen
     $query = "SELECT r_id FROM raum WHERE r_name='" . mysql_real_escape_string($lobby) . "'";
     $result2 = mysql_query($query, $conn);
     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']}";
Пример #19
0
function schreibe_chat($f)
{
    // Schreibt Chattext in DB
    global $dbase, $conn;
    // Schreiben falls text>0
    if (isset($f['c_text']) && strlen($f['c_text']) > 0) {
        // Falls Länge c_text mehr als 256 Zeichen, auf mehrere Zeilen aufteilen
        if (strlen($f['c_text']) > 256) {
            $temp = $f['c_text'];
            $laenge = strlen($temp);
            $i = 0;
            // Tabelle LOCK
            $result = mysql_query("LOCK TABLES chat WRITE", $conn);
            while ($i < $laenge) {
                $f['c_text'] = substr($temp, $i, 255);
                if ($i == 0) {
                    // erste Zeile
                    $f['c_br'] = "erste";
                } elseif ($i + 255 >= $laenge) {
                    // letzte Zeile
                    $f['c_br'] = "letzte";
                } else {
                    // mittlere Zeile
                    $f['c_br'] = "mitte";
                }
                $i = $i + 255;
                $back = schreibe_db("chat", $f, "", "c_id");
            }
            $result = mysql_query("UNLOCK TABLES chat", $conn);
        } else {
            // Normale Zeile in Tabelle schreiben
            $f['c_br'] = "normal";
            $back = schreibe_db("chat", $f, "", "c_id");
        }
    } else {
        $back = 0;
    }
    return $back;
}
Пример #20
0
         if (!isset($neu_spam_zeilen[0])) {
             $neu_spam_zeilen[0] = 0;
         }
         $neu_spam_zeilen[0] += 1;
         if (!isset($neu_spam_byte)) {
             $neu_spam_byte = array();
         }
         if (!isset($neu_spam_byte[0])) {
             $neu_spam_byte[0] = 0;
         }
         $neu_spam_byte[0] += strlen($text);
         unset($f);
         $f['o_spam_zeit'] = $aktuelle_zeit;
         $f['o_spam_zeilen'] = serialize($neu_spam_zeilen);
         $f['o_spam_byte'] = serialize($neu_spam_byte);
         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 : "", "");
Пример #21
0
     @mysql_free_result($result);
     // Top 100 Gesamtpunkte als Array aufbauen
     $query = "select u_punkte_gesamt as punkte,u_nick,u_id,u_level,u_punkte_gesamt,u_punkte_gruppe,u_chathomepage from user " . "where u_punkte_gesamt!=0  and u_level != 'Z' " . "order by u_punkte_gesamt desc,u_punkte_monat desc,u_punkte_jahr desc limit 0,100";
     $result = mysql_query($query, $conn);
     if ($result && mysql_num_rows($result) > 0) {
         $array_anzahl[2] = mysql_num_rows($result);
         while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
             $array_user[2][] = $row;
         }
     }
     @mysql_free_result($result);
     // Daten in Cache schreiben und alle anderen Einträge löschen
     unset($f);
     $f['t_eintrag'] = 1;
     $f['t_daten'] = isset($array_user) ? serialize($array_user) : null;
     $t_id = schreibe_db("top10cache", $f, 0, "t_id");
     $query = "DELETE FROM top10cache WHERE t_eintrag=1 AND t_id!='{$t_id}'";
     $result = mysql_query($query, $conn);
 }
 // Array als Tabelle ausgeben
 if (is_array($array_user)) {
     for ($i = 0; $i < $anzahl; $i++) {
         echo "<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0>\n" . "<TR BGCOLOR=\"{$bgcolor}\"><TD WIDTH=\"4%\" align=\"right\"><B>" . $f1 . ($i + 1) . $f2 . "</B></TD>";
         for ($j = 0; $j < 3; $j++) {
             if (isset($array_user[$j]) && isset($array_user[$j][$i]) && $array_user[$j][$i]['punkte']) {
                 $array_user[$j][$i]['u_punkte_anzeigen'] = 'Y';
                 echo "<TD WIDTH=\"8%\" align=\"right\">" . $f1 . $array_user[$j][$i]['punkte'] . $f2 . "</TD><TD  WIDTH=\"24%\">" . $f1 . user($array_user[$j][$i]['u_id'], $array_user[$j][$i], TRUE) . $f2 . "</TD>\n";
             } else {
                 echo "<TD WIDTH=\"32%\" colspan=2>" . $f1 . "&nbsp;" . $f2 . "</TD>\n";
             }
         }
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;
}
function schreibe_posting()
{
    global $conn, $th_id, $po_vater_id, $u_id, $po_id, $po_tiefe, $u_nick;
    global $po_titel, $po_text, $thread, $mode, $user_id, $autor;
    global $po_topposting, $po_threadgesperrt, $forum_admin, $t, $forum_aenderungsanzeige;
    if ($mode == "edit") {
        //muss autor neu gesetzt werden?
        if ($forum_admin && $autor) {
            $autor = intval($autor);
            if (!preg_match("/[a-z]|[A-Z]/", $autor)) {
                $sql = "select u_id from user where u_id={$autor}";
            } else {
                $sql = "select u_id from user where u_nick='{$autor}'";
            }
            $query = mysql_query($sql, $conn);
            if (mysql_num_rows($query) > 0) {
                $u_id_neu = mysql_result($query, 0, "u_id");
            }
            if (!$u_id_neu) {
                echo "<b>Ein User mit dem Nick/der ID {$autor} existiert nicht!</b>";
            } else {
                if ($u_id_neu != $user_id) {
                    $f['po_u_id'] = $u_id_neu;
                }
            }
        }
        if ($forum_admin) {
            $f['po_topposting'] = $po_topposting;
            $f['po_threadgesperrt'] = $po_threadgesperrt;
        }
        $f['po_titel'] = htmlspecialchars($po_titel);
        $f['po_text'] = htmlspecialchars(erzeuge_umbruch($po_text, 80));
        if ($forum_aenderungsanzeige == "1") {
            $append = $t['letzte_aenderung'];
            $append = str_replace("%datum%", date("d.m.Y"), $append);
            $append = str_replace("%uhrzeit%", date("H:i"), $append);
            $append = str_replace("%user%", $u_nick, $append);
            $f['po_text'] .= $append;
        }
        schreibe_db("posting", $f, $po_id, "po_id");
    } else {
        //neues Posting
        $f['po_th_id'] = $th_id;
        $f['po_u_id'] = $u_id;
        $f['po_vater_id'] = $po_vater_id;
        $f['po_tiefe'] = $po_tiefe;
        $f['po_titel'] = htmlspecialchars($po_titel);
        $f['po_text'] = htmlspecialchars(erzeuge_umbruch($po_text, 80));
        $f['po_ts'] = time();
        $f['po_threadts'] = time();
        if ($po_vater_id != 0) {
            $f['po_threadorder'] = 1;
        } else {
            $f['po_threadorder'] = 0;
        }
        //Posting schreiben
        $new_po_id = schreibe_db("posting", $f, "", "po_id");
        //ist was schiefgelaufen?
        if (!$new_po_id) {
            exit;
        }
        //falls reply muss po_threadorder des vaters neu geschrieben werden
        if ($po_vater_id != 0) {
            //po_threadorder des threadvaters neu schreiben
            //dazu Tabelle posting locken
            $sql = "LOCK TABLES posting WRITE";
            @mysql_query($sql, $conn);
            //alte Threadorder holen
            $sql = "select po_threadorder from posting where po_id = " . intval($thread);
            $query = mysql_query($sql, $conn);
            $threadorder = mysql_result($query, 0, "po_threadorder");
            @mysql_free_result($query);
            //erste Antwort?
            if ($threadorder == "0") {
                $threadorder = $new_po_id;
            } else {
                //jetzt hab ich arbeit...
                //rekursiv das unterste Posting dieses Teilbaums holen
                $insert_po_id = hole_letzten($po_vater_id, $new_po_id);
                //alte threadorder in feld aufsplitten
                $threadorder_array = explode(",", $threadorder);
                $threadorder_array_new = array();
                $i = 0;
                while (list($k, $v) = each($threadorder_array)) {
                    if ($v == $insert_po_id) {
                        $threadorder_array_new[$i] = $v;
                        $i++;
                        $threadorder_array_new[$i] = $new_po_id;
                    } else {
                        $threadorder_array_new[$i] = $v;
                    }
                    $i++;
                }
                $threadorder = implode(",", $threadorder_array_new);
            }
            //threadorder neu schreiben
            $sql = "update posting\n                                set po_threadorder = '{$threadorder}', po_threadts = " . time() . "\n                                where po_id = {$thread}";
            mysql_query($sql, $conn);
            #print "neue threadorder: $threadorder<BR>";
            //schliesslich noch die markierung des letzten in der Ebene entfernen
            $sql = "update posting\n                                set po_threadorder = '0'\n                                where po_threadorder = '1'\n                                and po_id <> {$new_po_id}\n                                and po_vater_id = " . intval($po_vater_id);
            mysql_query($sql, $conn);
            //Tabellen wieder freigeben
            $sql = "UNLOCK TABLES";
            @mysql_query($sql, $conn);
        } else {
            //Thread neu setzen
            $thread = $new_po_id;
        }
        //th_postings muss neu geschrieben werden
        //anz_threads und anz_replys im Thema setzen
        //erst Tabelle thema sperren
        $sql = "LOCK TABLES thema WRITE";
        @mysql_query($sql, $conn);
        //altes th_postings und anz_threads und anz_replys holen
        $sql = "select th_postings, th_anzthreads, th_anzreplys from thema where th_id = " . intval($th_id);
        $query = mysql_query($sql, $conn);
        $postings = mysql_result($query, 0, "th_postings");
        $anzthreads = mysql_result($query, 0, "th_anzthreads");
        $anzreplys = mysql_result($query, 0, "th_anzreplys");
        if (!$postings) {
            //erstes Posting in diesem Thema
            $postings = $new_po_id;
        } else {
            //schon postings da
            $postings_array = explode(",", $postings);
            $postings_array[] = $new_po_id;
            $postings = implode(",", $postings_array);
        }
        if ($po_vater_id == 0) {
            //neuer Thread
            $anzthreads++;
        } else {
            //neue Antwort
            $anzreplys++;
        }
        //schreiben
        $sql = "update thema\n                        set th_postings = '{$postings}',\n                        th_anzthreads = {$anzthreads},\n                        th_anzreplys = {$anzreplys}\n                        where th_id = " . intval($th_id);
        mysql_query($sql, $conn);
        //Tabellen wieder freigeben
        $sql = "UNLOCK TABLES";
        @mysql_query($sql, $conn);
    }
    if (!isset($new_po_id)) {
        $new_po_id = 0;
    }
    return $new_po_id;
}
Пример #24
0
                 $f['is_ip_byte'] = 4;
             } elseif (strlen($ip3) > 0 && $ip3 < 256 && strlen($ip2) > 0 && $ip2 < 256) {
                 $f['is_ip_byte'] = 3;
                 $f['is_ip'] = $ip1 . "." . $ip2 . "." . $ip3 . ".";
             } elseif (strlen($ip2) > 0 && $ip2 < 256) {
                 $f['is_ip_byte'] = 2;
                 $f['is_ip'] = $ip1 . "." . $ip2 . "..";
             } else {
                 $f['is_ip_byte'] = 1;
                 $f['is_ip'] = $ip1 . "...";
             }
             $f['is_owner'] = $u_id;
             if (!isset($f['is_id'])) {
                 $f['is_id'] = 0;
             }
             schreibe_db("ip_sperre", $f, $f['is_id'], "is_id");
         } else {
             echo "<P>{$t['sonst6']}</P>\n";
             $aktion = "neu";
         }
     } else {
         echo "<P>{$t['sonst7']}</P>\n";
         $aktion = "neu";
     }
 }
 if (!isset($aktion)) {
     $aktion = "";
 }
 // Auswahl
 switch ($aktion) {
     case "trace":
Пример #25
0
function loesche_mail($m_id, $u_id)
{
    // Löscht eine Mail der ID m_id
    global $id, $http_host, $eingabe_breite, $PHP_SELF, $f1, $f2, $f3, $f4, $dbase, $conn, $u_nick, $u_id;
    $query = "SELECT m_zeit,m_id,m_status FROM mail " . "WHERE m_id=" . intval($m_id) . " AND m_an_uid={$u_id}";
    $result = mysql_query($query, $conn);
    if ($result && mysql_num_rows($result) == 1) {
        $row = mysql_fetch_object($result);
        $f['m_zeit'] = $row->m_zeit;
        if ($row->m_status != "geloescht") {
            $f['m_status'] = "geloescht";
            $f['m_geloescht_ts'] = date("YmdHis");
        } else {
            $f['m_status'] = "gelesen";
            $f['m_geloescht_ts'] = '00000000000000';
        }
        schreibe_db("mail", $f, $row->m_id, "m_id");
    } else {
        echo "<P><B>Fehler:</B> Diese Mail nicht kann nicht gelöscht werden!</P>";
    }
    @mysql_free_result($result);
}