MyBB.de Forum

Normale Version: Userabfrage bei Registrierung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
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.
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
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.
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
Wie sieht der komplette Code des Plugins jetzt aus? Hänge die Datei ggf. hier an.
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
Schick mir den Code bitte in einer PN.
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);

Hallo Michael

Danke für deine Hilfe.

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

Gruß

Andy