Seite 1 von 3
Registrierung - nur bestimmte Mails zulassen?
Verfasst: 23.04.2007 16:32
von Serpent
Gibt es eine Möglichkeit nur eine Hand voll Emails für die Registrierung zuzulassen? Die Spam Bots nehmen so überhand und jeder Spam-Bot-Schutz den ich bisher installiert habe hält maximal 4 Wochen. Ich würde das gern so einstellen, dass man sich nur noch mit *@web.de, *@gmx.de, *@t-online.de und *@aol.com registrieren kann. Kann man das irgendwie machen?
Verfasst: 23.04.2007 17:02
von nickvergessen
Es sind dann nur noch emaill addressen von web, gmx, t-online und aol zugelassen. Bei anderen erscheint (nur beim registrieren) eine Fehlermeldung die dies (auf deutsch) sagt.
Finde in der include/usercp_register.php:
Code: Alles auswählen
else if ( $mode == 'register' )
{
if ( empty($username) || empty($new_password) || empty($password_confirm) || empty($email) )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
}
Danach füge ein:
Code: Alles auswählen
if ( !substr_count($email, '@web') && !substr_count($email, '@aol') && !substr_count($email, '@t-online') && !substr_count($email, '@gmx'))
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . 'Es sind nur Email-Addressen von web, gmx, t-online und aol erlaubt!';
}
(ungetestet)
Verfasst: 23.04.2007 17:57
von Serpent
Danke, ich werd dann mal mein Glück damit versuchen

Verfasst: 23.04.2007 17:58
von nickvergessen
Wenns gefunzt(funktioniert) hat bitte nen post hinterlassen, damit ich es weiß

Verfasst: 23.04.2007 21:25
von gn#36
Ich weiß nicht ob die Oder-Verknüpfung an der Stelle wirklich sinnvoll ist, schließlich kann die Email-Adresse nicht zu allen 4 Anbietern gleichzeitig gehören, oder?
Statt
Code: Alles auswählen
if ( !substr_count($email, '@web') || !substr_count($email, '@aol') || !substr_count($email, '@t-online') || !substr_count($email, '@gmx'))
vielleicht besser so:
Code: Alles auswählen
if( !preg_match("#@(web|aol|t\-online|gmx)#is", $email))
Alternativ alle || durch && ersetzen, dann sollte es zumindest logisch stimmen.
PS: Damit werden auch andere seriöse User mit z.b. Arcor, Lycos und freenet Adressen ausgesperrt, wenn du eine Whitelist machen willst, dann sollte sie länger werden, oder du verwendest die KB:antispam
Verfasst: 23.04.2007 21:27
von nickvergessen
gn#36 hat geschrieben:Alternativ alle || durch && ersetzen, dann sollte es zumindest logisch stimmen.
ok *edit* liegt daran weil ich zuerst mit dem gegenfall gearbeitet habe, also dass irgendwas passiert wenn es von gmx ... is
gn#36 hat geschrieben:Code: Alles auswählen
if( !preg_match("#@(web|aol|t\-online|gmx)#is", $email))
kannst du mal die funktion von den # und dem is genau erklären oder nen Link geben?
Verfasst: 24.04.2007 09:08
von Andi1111
Geht das auch anders rum? Ich würde gerne AOL Adressen verbieten da da keine Mails vom Forum Ankommen.
Verfasst: 24.04.2007 09:58
von nickvergessen
Dann versuchs damit
Code: Alles auswählen
if ( !substr_count($email, '@web') && !substr_count($email, '@t-online') && !substr_count($email, '@gmx'))
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . 'Es sind nur Email-Addressen von web, gmx und t-online erlaubt!';
}
Verfasst: 24.04.2007 10:01
von Andi1111
danke, aber ich habe mich falsch ausgedrückt, ich will alle erlauben und nur aol sperren, oder gibt es inzwischen eine andere lösung. hier im forum habe ich zwar etliche beiträge zum thema aol mails gefunden aber keine lösung dafür das die da nicht ankommen.
Verfasst: 24.04.2007 10:03
von nickvergessen
Andi1111 hat geschrieben:danke, aber ich habe mich falsch ausgedrückt, ich will alle erlauben und nur aol sperren, oder gibt es inzwischen eine andere lösung. hier im forum habe ich zwar etliche beiträge zum thema aol mails gefunden aber keine lösung dafür das die da nicht ankommen.

ich seh grad das du ja nicht der threadstarter bist..
ja natürlich geht das auch, das ausschließlich aol
ausgeschlossen wird:
Finde in der include/usercp_register.php:
Code: Alles auswählen
else if ( $mode == 'register' )
{
if ( empty($username) || empty($new_password) || empty($password_confirm) || empty($email) )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
}
Danach füge ein:
Code: Alles auswählen
if ( substr_count($email, '@aol'))
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . 'AOL-Email-Addressen sind nicht erlaubt!';
}