Frage zur Vergabe von User-ID

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
Geier0815
Mitglied
Beiträge: 10
Registriert: 02.03.2006 20:54

Frage zur Vergabe von User-ID

Beitrag von Geier0815 »

Moin, Moin,

ich stelle derzeit ein merkwürdiges Phänomen fest: Wenn ich User (in diesem Fall Spambots) "per zu Fuß" lösche, kann es passieren das die User-ID für einen neuen(?) User wiederverwendet wird.
Da aber die ID wohl per Autoinkrement vergeben wird, sollte das doch eigentlich unmöglich sein? Bei mir kam deshalb schon der Gedanke auf dass die Spambots inzwischen eine Möglichkeit aufgetan haben Accounts zu kapern, auch wenn ich das im Grunde für unmöglich halte.

Hat einer von euch schon Ähnliches beobachtet? Oder hat wer gar eine Erklärung für dieses Phänomen?
Benutzeravatar
Sanchez17
Mitglied
Beiträge: 913
Registriert: 10.12.2005 22:21
Wohnort: Moers / Sevilla
Kontaktdaten:

Beitrag von Sanchez17 »

Hola,

soviel ich weiß, werden nicht mehr benutze ID´s wieder vergeben. Daher ist es möglich,bzw. wahrscheinlich, das die ID eines gelöschten Users wieder vergeben wird.

Stell dir mal vor, es wäre nicht so:

Bei großen Boards würden trotz vieler löschungen die ID´s riesige Zahlen werden.
Viva el betís, mi amor :-)
Wir gehn voran, als euer zwölfter Mann, scheiß egal wie weit, ob Sturm oder Schnee, MSV Duisburg oé
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17475
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Hi,

die Tabelle phpbb_users beinhaltet keinen auto_increment wert.


Bei der Registrierung wird vor Vergabe der nächsten User ID die höchste aktuell verwendete User ID ermittelt und um 1 erhöht.

Code: Alles auswählen

$sql = "SELECT MAX(user_id) AS total FROM " . USERS_TABLE;
[...]
$user_id = $row['total'] + 1;
Geier0815
Mitglied
Beiträge: 10
Registriert: 02.03.2006 20:54

Beitrag von Geier0815 »

Alles klar!
Dann hab ich also den User gelöscht bevor sich ein weiterer neuer User registriert hat und deshalb wurde die ID wieder vergeben.

Vielen Dank!
Geier0815
Mitglied
Beiträge: 10
Registriert: 02.03.2006 20:54

Beitrag von Geier0815 »

Ich hab jetzt mal eine doofe Frage: Die verwendete Funktion erzeugt gegenüber dem Autoinkrement doch einen erheblichen overhead ohne einen Vorteil zu bieten? Es muß doch erst eine Sortierung der IDs durchgeführt werden, während beim Autoinkrement der höchste Wert in einer Variablen gespeichert wird. In der Praxis wird sich das nicht bemerkbar machen, aber abgesehen von solchen "Sonderfällen" wie bei mir beschrieben, macht es keinen Unterschied da in beiden Fällen nicht die freigewordenen IDs unterhalb der Höchsten wiederverwendet werden. Wieso wird also eine solche Funtion verwendet?

Oder hab ich jetzt SQL falsch verstanden und einen echten Pfahl im Kopf?
Antworten

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