Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste
Userabfrage bei Registrierung
#1
Hallo

Bei der Registrierung wird ja abgefragt ob ein User schon vorhanden ist.

Ich habe bei mir im Forum eine 2.Tabelle in der sich gelöschte User befinden (werden durch ein Plugin automatisch nach eine bestimmten Zeit dorthin verschoben).

Ist es möglich diese Tabelle bei der Regiestrierung auch abzufragen, so das die Namen und E-Mail Adressen nicht nochmal verwendet werden können?

Wenn Ja, wie?

Danke schon mal im voraus.

Gruß Andy
#2
Du könntest die Namen und E-Mail-Adressen vom Plugin auch auf die Ausschlussliste setzen lassen, dann sind sie gesperrt. Oder du machst das manuell im Admin-CP.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#3
Hallo Michael

Erst einmal Danke für die Antwort.

Ist natürlich auch eine Lösung. Ich dachte nur es geht auch anders. Z.B über eine Änderung in der funktions_user.php. Dort gibt es ja die Funktion der Abfrage für den Usernamen.

PHP-Code:
function username_exists($username)
{
    global 
$db;
    
$query $db->simple_select("users""COUNT(*) as user""username='".$db->escape_string($username)."'", array('limit' => 1));
    if(
$db->fetch_field($query'user') == 1)
    {
        return 
true;
    }
    else
    {
        return 
false;
    }


Kann man dort eine Abfrage über 2 Tabellen einfügen?

Ich bin nun nicht gerade ein Genie in bezug auf Datenbanken und PHP, eher jemand der durch probieren lernt und das Internet gibt zu dem Thema nicht viel her.

Gruß Andy
#4
Für den Anfang könntest du den Code mit der Abfrage innerhalb der Funktion duplizieren und die Abfrage für die zweite Tabelle ändern.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#5
Hallo

Die Idee mit der funktions_user.php war nicht so ideal, also habe ich mich noch einmal mit der Plugin Datei beschäftigt.

Irgendwie hab ich es auch geschafft, das die Daten in die Tabelle banfilters geschrieben werden.

PHP-Code:
$db->write_query("INSERT INTO ".TABLE_PREFIX."banfilters (filter) 
SELECT (username) 
FROM "
.TABLE_PREFIX."users_pruned");
$query $db->write_query("UPDATE mybb_banfilters SET type = '2' WHERE  mybb_banfilters . type  =0"); 

Leider hab ich jetzt ein Problem.

Die Daten werden immer und immer wieder in die Tabelle geschrieben.

Die im Internet angesprochen Lösung mit einem INDEX Schlüssel(UNIQUE) bringt mich auch nicht weiter.

Bin für jede Hilfe dankbar.


Gruß Andy

PS: ich weiß das der Code nicht besonders gut aussieht und es bestimmt auch anders geht, aber ich bin halt Laie in Sachen PHP Smile
#6
Wie sieht der komplette Code des Plugins jetzt aus? Hänge die Datei ggf. hier an.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#7
Hallo Michael

Im Code des Plugins hat der Autor vermerkt das das Plugin ohne seine Genehmigung nicht weitergegeben werden darf.

Also ist ein Anhang nicht möglich.


Wie kann ich dir die Datei zukommen lassen?

Gruß Andy
#8
Schick mir den Code bitte in einer PN.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#9
Dein Code macht da irgendwie keinen Sinn. Es geht viel einfacher. Suche in der Plugindatei nach:
PHP-Code:
while($user $db->fetch_array($query))
            
$db->insert_query('users_pruned'$user); 
Ersetzen durch:
PHP-Code:
while($user $db->fetch_array($query))
{
    
$db->insert_query('users_pruned'$user);
    
$banuser = array(
        
'filter' => $db->escape_string($user['username']),
        
'type' => 2,
        
'dateline' => TIME_NOW
    
);
    
$db->insert_query('banfilters'$banuser);


Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#10
Hallo Michael

Danke für deine Hilfe.

Es scheint perfekt zu funktionieren. Habs 2 mal durchlaufen lassen und keine Probleme.

Gruß

Andy