MyBB.de Forum
MyBB Login mit E-Mail statt Benutzername - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: MyBB Login mit E-Mail statt Benutzername (/thread-13348.html)

Seiten: Seiten: 1 2 3


MyBB Login mit E-Mail statt Benutzername - Anonym1 - 26.05.2009

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.


RE: MyBB Login mit E-Mail statt Benutzername - Michael - 26.05.2009

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.


RE: MyBB Login mit E-Mail statt Benutzername - Anonym1 - 26.05.2009

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&ouml;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?


RE: MyBB Login mit E-Mail statt Benutzername - Michael - 26.05.2009

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.


RE: MyBB Login mit E-Mail statt Benutzername - Anonym1 - 27.05.2009

Da ich noch nie ein Plugin erstellt, habe, weis ich nicht, wie das geht.


RE: MyBB Login mit E-Mail statt Benutzername - Michael - 27.05.2009

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']




RE: MyBB Login mit E-Mail statt Benutzername - Anonym1 - 27.05.2009

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&ouml;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'];
}
?>



RE: MyBB Login mit E-Mail statt Benutzername - Michael - 27.05.2009

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.


RE: MyBB Login mit E-Mail statt Benutzername - Anonym1 - 27.05.2009

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'];




RE: MyBB Login mit E-Mail statt Benutzername - Michael - 28.05.2009

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'];