Beiträge: 4
Themen: 1
Registriert seit: 30.10.2009
30.10.2009, 16:42
(Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2009, 16:43 von deffers0en.)
Hallo MyBB Gemeinde,
ich möchte gern, dass nur bestimmte mail adressen für die registrierung zugelassen werden. d.h. den aktivierungslink sollen nur leute mit beispielsweise "irgendwas@web.de" bekommen.
ich stelle mir das so vor, dass im registrierungsformular die entsprechende mail adresse eingegeben wird und dann entweder direkt bei der eingabe im mailadressenfeld der registrierung ein grüner oder hintergrund auftaucht oder aber auch für den nutzer unsichtbar nach dem klicken des registrierungsbuttons vom system entschieden wird, ob es sich um eine mailadresse handelt, die berechtigt ist einen aktivierungslink zu bekommen.
habt ihr irgendwelche vorschläge, wie ich das umsetzen könnte? bin für jede idee dankbar
Grüße
deffers0en
MyBB ver 1.4.9 (1409)
Beiträge: 25.766
Themen: 269
Registriert seit: 20.09.2005
Was hast du denn vor?
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 4
Themen: 1
Registriert seit: 30.10.2009
danke fürs schnelle reagieren
das beschriebene.
es geht darum, dass ich gewärleisten möchte, dass in meinem forum sich nur studenten meiner hochschule registrieren können sollen. keine profs, keine anderen hochschulen. dies kann ich über die studentenmailadresse, die jeder hat und die bei jedem nach dem "@" gleich ist, gewährleisten. da ich aber nicht alle registrierungen per hand als admin immer freischalten möchte, hätte ich gern ne automatisierung.
Grüße
Beiträge: 25.766
Themen: 269
Registriert seit: 20.09.2005
Ok, so klingt das ganze Vorhaben verständlich. Man könnte das in der Datei inc/datahandlers/user.php umsetzen. Da werden die Eingaben überprüft.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 4
Themen: 1
Registriert seit: 30.10.2009
danke nochmals für die schnelle hilfe stefan,
habe ne möglichkeit in functions.php gefunden. habe validate_email_format() entsprechend angepasst.
muss es nur noch testen.
thema kann geschlossen werden.
Grüße
Beiträge: 2.288
Themen: 141
Registriert seit: 17.11.2005
Wenn du es getestet hast und es funktioniert, poste bitte deine Lösung. Könnte bestimmt auch für andere interessant sein.
The User, Formerly Known As "En-Gedi"
Beiträge: 4
Themen: 1
Registriert seit: 30.10.2009
31.10.2009, 13:21
(Dieser Beitrag wurde zuletzt bearbeitet: 31.10.2009, 13:43 von deffers0en.)
ich hab die logik einfach vertauscht
Datei: /inc/functions.php
Original:
PHP-Code:
function validate_email_format($email)
{
if(strpos($email, ' ') !== false)
{
return false;
}
// Valid local characters for email addresses: http://www.remote.org/jochen/mail/info/chars.html
return preg_match("/^[a-zA-Z0-9&*+\-_.{}~^\?=\/]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9.-]+$/si", $email);
}
abgeändert:
PHP-Code:
function validate_email_format($email)
{
if(strpos($email, '@web.de') !== false)
{
// Valid local characters for email addresses: http://www.remote.org/jochen/mail/info/chars.html
return preg_match("/^[a-zA-Z0-9&*+\-_.{}~^\?=\/]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9.-]+$/si", $email);
}
return false;
}
somit werden nur adressen akzeptiert die "@web.de" beinhalten (web.de ist hier natürlich nur als beispiel zu verstehen)
falls euch bedenken einfallen oder szenarien, die probleme bereiten könnten, wäre ich für hinweise dankbar
Beiträge: 5
Themen: 1
Registriert seit: 15.10.2011
29.10.2011, 20:18
(Dieser Beitrag wurde zuletzt bearbeitet: 29.10.2011, 20:22 von nononever.)
Datei: /inc/functions.php
PHP-Code:
function is_banned_email($email, $update_lastuse=false)
{
global $cache, $db;
$banned_cache = $cache->read("bannedemails");
if(!$banned_cache)
{
$cache->update_bannedemails();
$banned_cache = $cache->read("bannedemails");
}
foreach($banned_cache as $banned_email)
{
// Make regular expression * match
$banned_email['filter'] = str_replace('\*', '(.*)', preg_quote($banned_email['filter'], '#'));
if(preg_match("#{$banned_email['filter']}#i", $email))
{
// Updating last use
if($update_lastuse == true)
{
$db->update_query("banfilters", array("lastuse" => TIME_NOW), "fid='{$banned_email['fid']}'");
}
return false; // VON TRUE AUF FALSE ÄNDERN
}
}
// Still here - good email
return true; // VON FALSE AUF TRUE ÄNDERN
}
Wenn du die Funktion so abänderst, kannst du unter Konfigurations->Ausschluss->Verbotene eMailadressen nun die Mailadressen eingeben, welche freigegeben sind zur Registration
Sozusagen einfach den Sinn umgedreht