Hallo,
ich möchte in meinem Forum gerne, dass man sich mit seiner E-Mail-Adresse statt mit seinem Benutzernamen einloggen muss.
Bisher habe ich noch nicht gefunden, was ich in der "member.php" ändern muss.
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Das ist die falsche Datei. Die Änderungen müssten in der Datei inc/functions_user.php erfolgen. Möglicherweise kannst du auch ein Plugin schreiben, das den Benutzernamen zur E-Mail-Adresse sucht und diesen dann an die Loginfunktion weitergibt, so dass du keine Dateien bearbeiten musst. Der Hook für das Plugin wäre member_do_login_start.
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
26.05.2009, 19:39
(Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2011, 23:12 von Michael.)
Hallo,
danke für die Antwort. Ich werde es probieren, so ein Plugin zu bauen. Da muss ich eigentlich nur die Variable ändern.
Ich hab nun folgenden Code für das Plugin erstellt:
PHP-Code: <?php if(!defined("IN_MYBB")) { die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined."); }
$plugins->add_hook("member_do_login_start", "emaillogin");
function emaillogin_info() { return array( "name" => "E-Mail Anmeldung", "description" => "Mit diesem Plugin können sich die Besucher via E-Mail-Adresse anmelden", "website" => "http://i-net.bplaced.net", "author" => "IS WebSoft (XXX)", "authorsite" => "http://i-net.bplaced.net", "version" => "1.0", "guid" => "", "compatibility" => "*" ); }
function emaillogin($query) { $query = str_replace("username", "email", $query); return $query; } ?>
Aber es geht leider nicht. Was habe ich falsch gemacht?
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Ich würde anhand der E-Mail-Adresse, die ja in $mybb->input['username'] steckt, den Benutzernamen aus der Datenbank abfragen und $mybb->input['username'] dann überschreiben, so dass der Name enthalten ist und nicht mehr die E-Mail-Adresse.
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Da ich noch nie ein Plugin erstellt, habe, weis ich nicht, wie das geht.
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
27.05.2009, 15:02
(Dieser Beitrag wurde zuletzt bearbeitet: 27.05.2009, 15:22 von Michael.)
Sowas in der Art:
PHP-Code: function emaillogin($query) { global $mybb, $db;
$query = $db->query("SELECT username FROM ".TABLE_PREFIX."users WHERE email='".$db->escape_string($mybb->input['username'])."'"); $user = $db->fetch_array($query); $mybb->input['username'] = $user['username'] }
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
27.05.2009, 15:14
(Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2011, 23:13 von Michael.)
Nachdem ich mich über das Quickformular angemeldet habe, kommt wärend der Anmeldug folgende Meldung:
Zitat:Fatal error: Call to a member function query() on a non-object in D:\xampp\htdocs\mybb\inc\plugins\emaillogin.php on line 27
Ich weis nicht, woran es liegen könnte.
Mein Code:
PHP-Code: <?php if(!defined("IN_MYBB")) { die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined."); }
$plugins->add_hook("member_do_login_start", "emaillogin");
function emaillogin_info() { return array( "name" => "E-Mail Anmeldung", "description" => "Mit diesem Plugin können sich die Besucher via E-Mail-Adresse anmelden", "website" => "http://i-net.bplaced.net", "author" => "IS WebSoft (XXX)", "authorsite" => "http://i-net.bplaced.net", "version" => "1.0", "guid" => "", "compatibility" => "*" ); }
function emaillogin($query) { global $mybb;
$query = $db->query("SELECT username FROM ".TABLE_PREFIX."users WHERE email='".$db->escape_string($mybb->input['username'])."'"); $user = $db->fetch_array($query); $mybb->input['username'] = $user['username']; } ?>
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Ups, bei global fehlt $db, habe es in meinem vorigen Beitrag korrigiert. Den Code habe ich gerade so als Beispiel geschrieben, ich weiß nicht, ob die Variablen so stimmen. Das müsstest du dann noch gucken.
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Ja, die Anmeldung, von "member.php?action=login" geht. Nur das Quicklogin geht nicht. Ich habe versucht
PHP-Code: $mybb->input['username'] = $mybb->input['quick_username'];
einzufügen, doch auch dann geht es nicht.
Aktueller Code:
PHP-Code: function emaillogin($query) { global $mybb, $db;
$mybb->input['username'] = $mybb->input['quick_username']; $query = $db->query("SELECT username FROM ".TABLE_PREFIX."users WHERE email='".$db->escape_string($mybb->input['username'])."'"); $user = $db->fetch_array($query); $mybb->input['username'] = $user['username']; }
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
PHP-Code: function emaillogin($query) { global $mybb, $db; if($mybb->input['quick_username']) { $method = "quick_username"; } else { $method = "username"; }
$query = $db->query("SELECT username FROM ".TABLE_PREFIX."users WHERE email='".$db->escape_string($mybb->input[$method])."'"); $user = $db->fetch_array($query); $mybb->input[$method] = $user['username']; }
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
|