Beiträge: 82
Themen: 11
Registriert seit: 20.08.2008
MyBB-Version: 1.4.2
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
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
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
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 82
Themen: 11
Registriert seit: 20.08.2008
MyBB-Version: 1.4.2
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
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
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
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 82
Themen: 11
Registriert seit: 20.08.2008
MyBB-Version: 1.4.2
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
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Wie sieht der komplette Code des Plugins jetzt aus? Hänge die Datei ggf. hier an.
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 82
Themen: 11
Registriert seit: 20.08.2008
MyBB-Version: 1.4.2
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
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Schick mir den Code bitte in einer PN.
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
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
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 82
Themen: 11
Registriert seit: 20.08.2008
MyBB-Version: 1.4.2
Hallo Michael
Danke für deine Hilfe.
Es scheint perfekt zu funktionieren. Habs 2 mal durchlaufen lassen und keine Probleme.
Gruß
Andy