Anzeige neuer Nutzer für Admins und "Normalos"

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
-MiB-
Mitglied
Beiträge: 25
Registriert: 02.07.2004 17:04

Anzeige neuer Nutzer für Admins und "Normalos"

Beitrag 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
Zuletzt geändert von -MiB- am 06.08.2007 21:16, insgesamt 2-mal geändert.
Benutzeravatar
punkface
Mitglied
Beiträge: 3579
Registriert: 12.08.2004 23:37

Beitrag 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. ;)
Benutzeravatar
SteveHH
Mitglied
Beiträge: 511
Registriert: 10.06.2006 11:47
Wohnort: Hamburg
Kontaktdaten:

Beitrag 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
Crocodiles Hamburg - Eishockey mit HERZ
http://www.crocodiles-hamburg.de
-MiB-
Mitglied
Beiträge: 25
Registriert: 02.07.2004 17:04

Beitrag 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
Benutzeravatar
SteveHH
Mitglied
Beiträge: 511
Registriert: 10.06.2006 11:47
Wohnort: Hamburg
Kontaktdaten:

Beitrag von SteveHH »

Auch wenn Du es mir bestimmt nicht glaubst: Bei mir werden ALLE ferngehalten und das schon seit einer geraumen Zeit :D
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 ..
Crocodiles Hamburg - Eishockey mit HERZ
http://www.crocodiles-hamburg.de
-MiB-
Mitglied
Beiträge: 25
Registriert: 02.07.2004 17:04

Beitrag 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:

Code: Alles auswählen

if ( $userdata['user_level'] != ADMIN ) 
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... :roll:

Weiß jemand weiter?
Michael
-MiB-
Mitglied
Beiträge: 25
Registriert: 02.07.2004 17:04

Beitrag 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
Benutzeravatar
punkface
Mitglied
Beiträge: 3579
Registriert: 12.08.2004 23:37

Beitrag 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... ;)
-MiB-
Mitglied
Beiträge: 25
Registriert: 02.07.2004 17:04

Beitrag 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
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“