Seite 1 von 1
Anzeige neuer Nutzer für Admins und "Normalos"
Verfasst: 01.08.2007 21:45
von -MiB-
Hallo zusammen,
wie so viele von uns habe ich Ärger mit Spam-Bots. Trotz aller Features kommen immer noch täglich ein paar Anmeldungen durch. Neuerdings sogar mit arcor oder web.de Adressen -> Mailfilter nutzlos. Können auch "witzige" Zeitgenossen und keine Bots sein.
Wie auch immer: Die Spinner können zwar nix schreiben und werden im ACP gelöscht, aber auch die kurzzeitige Anzeige des (teilweise recht vulgären) Benutzernamens nervt.
Daher meine Frage: Kann ich die Anzeige "Der neueste Benutzer ist..."
a) nur für Admins sichtbar machen (Reminder, dass man löschen/aktivieren muss) und
b) zusätzlich für normale Nutzer den neuesten
aktivierten Benutzer anzeigen
Ich vermute, dass man zumindest a) recht einfach durch ändern der index.php realisieren kann, oder?
Code: Alles auswählen
$template->assign_vars(array(
'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),
'TOTAL_USERS' => sprintf($l_total_user_s, $total_users),
'NEWEST_USER' => sprintf($lang['Newest_user'], '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$newest_uid") . '">', $newest_user, '</a>'),
Die Suche hat zwar ähnlich gelagerte Fälle gezeigt, aber beantwortet nicht wirklich meine Details. Daher vielen Dank im Voraus für eure Hilfe!
Michael
Verfasst: 02.08.2007 10:05
von punkface
a)
Account Activation Overview
Displays all users which expect an account activation (admin activation or user activation) or are already active members on two seperate pages inside of the admin panel.
You can de/activate or delete them (notification e-mail will be sent).
b)
Mitglieder erst nach Aktivierung anzeigen
Und das du im Adminbereich unter
Konfiguration die
Account-Freischaltung aktivieren auf
Durch den Admin einstellst sollte eigentlich klar sein, und hast du auch sicherlich schon gemacht.

Verfasst: 02.08.2007 11:09
von SteveHH
Moin !
Warum baust Du nicht den Anti-Bot-Question-Mod ein ? Ich habe, seit ich das Teil drinnen habe, nicht eine Fake-Anmeldung irgendwelcher Bots gehabt und es wurden ~330 Anmeldeversuche geblockt.
Greetz,
Steve
Verfasst: 03.08.2007 11:32
von -MiB-
@punkface:
a) Der Mod Account Activation Overview ist nicht ganz das, was ich suche. Ich hätte die Info über Neuankömmlinge gerne weiterhin auf der Index-Seite, damit ich gar nicht erst ins ACP muss. Aber eben nur sichtbar für Admins. Ich dachte an einen simplen Zusatz "if user_level=admin" an der richtigen Stelle.
Klar, Admin-Aktivierung ist an.

Daher möchte ich ja gerne beim regelmässigen Besuch der Startseite schon sehen, ob ich ins ACP gehen muss:
LastUser != LastActiveUser -> ACP -> Löschen oder Aktivieren
b) Klasse, genau das was ich gesucht habe! Vielen Dank!
@Steve:
Ich habe keinen Bock mehr auf Wettrüsten gegen Bots & Witzbolde! Captcha, Mail-Filter usw. haben viel gebracht, aber kein MOD wird sie alle fernhalten. Es geht mir auch weniger ums Verhindern der Bot-Anmeldung als um das Anzeigen des Usernamens.
Mit Lösung b) werden unerwünschte Pseudonyme/Fakes jetzt einfach ausgeblendet und stören nicht mehr, völlig egal wann wir sie löschen.
LG
Michael
Verfasst: 03.08.2007 11:47
von SteveHH
Auch wenn Du es mir bestimmt nicht glaubst: Bei mir werden ALLE ferngehalten und das schon seit einer geraumen Zeit
Nur noch die, die sich per Hand eintragen, kommen rein und aufgrund diverser Abfragen loggen sich nur noch User ein, die es auch wirklich möchten ..
Verfasst: 03.08.2007 21:30
von -MiB-
Doch, doch

ich glaub dir!
Hab noch ein wenig gegraben, aber an den Code trau ich mich nicht ran. Hiermit könnte ich die Anzeige nur für Admins sichtbar machen:
Die passende Stelle wäre wohl wie oben angegeben in der index.php. Aber wie bastel ich das in das array rein? Und müßte ich dann in includes/functions.php den "case 'newestuser'" duplizieren und einen "case 'newestuser_admin'" erzeugen? Einmal mit dem user_active Zusatz und einmal ohne:
Code: Alles auswählen
case 'newestuser_admin':
$sql = "SELECT user_id, username
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS . "
ORDER BY user_id DESC
LIMIT 1";
break;
case 'newestuser':
$sql = "SELECT user_id, username
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS . " AND user_active = 1
ORDER BY user_id DESC
LIMIT 1";
break;
Zieht das weitere Änderungen nach sich?
Fragen über Fragen...
Weiß jemand weiter?
Michael
Verfasst: 06.08.2007 21:09
von -MiB-
Hab noch eine neue Idee:
In der functions.php die function get_db_stat($mode) mittels if-else in eine Variante für Admins und eine für den Rest der Welt aufteilen. Die Admins sehen die letzte Anmeldung, der Rest die letzte _aktivierte_ Anmeldung.
Code: Alles auswählen
if ( $userdata['user_level'] != ADMIN )
{
function get_db_stat($mode)
...
WHERE user_id <> " . ANONYMOUS . " AND user_active = 1
...
}
else
{
function get_db_stat($mode)
...
WHERE user_id <> " . ANONYMOUS . "
...
}
Kann das funktionieren? Brauche ich vorher noch define und include, um die Variable userdata zu belegen?
Danke, dass ihr euch Zeit für mich nehmt!
LG
Michael
Verfasst: 07.08.2007 14:23
von punkface
-MiB- hat geschrieben:Die Admins sehen die letzte Anmeldung, der Rest die letzte _aktivierte_ Anmeldung.
functions.php
suche
Code: Alles auswählen
case 'newestuser':
$sql = "SELECT user_id, username
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS . "
ORDER BY user_id DESC
LIMIT 1";
break;
ersetzte das mit
Code: Alles auswählen
case 'newestuser':
global $userdata;
$sql_active_user = ( $userdata['user_level'] == ADMIN ) ? '' : 'AND user_active = 1';
$sql = "SELECT user_id, username
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS . "
$sql_active_user
ORDER BY user_id DESC
LIMIT 1";
break;
So ganz versteh ich den Zweck nicht, aber wenn du es so willst...

Verfasst: 07.08.2007 21:52
von -MiB-
Super, das klappt genau so wie ich es wollte! Vielen Dank!
Zum Hintergrund:
Spam-Anmeldungen, Witzbolde oder unerwünschte Nutzer bleiben den normalen Usern verborgen, da diese ja nie freigeschaltet werden. Admins sehen aber weiterhin direkt beim Login ins Forum, ob jemand neues da ist, gehen dann ins ACP, um zu aktivieren oder löschen.
LG und nochmals Danke!
Michael