Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Problem bei Registrierung
#1
Hallöchen, alle zusammen!

Vor kurzen baute ich den Code, den ich hier irgendwo im Forum fand, Geburtsdatum und Geschlecht als Pflichtfelder bei der Registrierung einzubinden ein.

Nun wurde mir per Mail mitgeteilt, dass ein "komischer" Fehler bei der Registrierung auftauche.
Das hab ich dann gleich unter die Lupe genommen, und tatsächlich bekomme ich folgenden Fehler:

Code:
mySQL error: 1054
Unknown column 'fid' in 'field list'
Query: INSERT INTO mybb_userfields (fid1, fid2, fid3, fid4, fid5, fid6, fid) VALUES ('', '', 'Männlich', '6', 'April', '1984', '31');

Ich weiß nicht wo der Fehler liegt???

Der Fehler wird auf einer ansonsten weißen Seite angezeigt.
Der User wird dennoch angelegt. Ich habe die Registrieroption "Send Email Validation" ausgewählt.
Nun scheint es so, obwohl der User angelegt und in "Wartet auf Aktivierung" gesteckt wird, dass keine Aktivierungsmail gesendet wird!
Hängt das zusammen? Wie kann ich das lösen?

Danke schonmal für eure Hilfe!

Liebe Grüße, GM!


Nachtrag:

Probeweise hatte ich die Pflichtfelder Geschlecht und Geburtsdatum deaktiviert, und bekam dann folgende Fehlermeldung:

Code:
mySQL error: 1054
Unknown column 'fid' in 'field list'
Query: INSERT INTO mybb_userfields (fid1, fid2, fid3, fid4, fid5, fid6, fid) VALUES ('', '', '', '', '', '', '33');
Wer eine Wahrheit verbergen will, braucht sie nur offen auszusprechen - sie wird einem ja doch nicht geglaubt.
(Charles Talleyrand)
#2
Ich hab das Problem gelöst.
Nach dem Vergleich mit der "alten" member.php habe ich den Fehlern gefunden.

Michael hatte, hier irgendwo im Forum, den Code gepostet um das Geburtsdatum als Registierungsfeld einzubauen gepostet:

PHP-Code:
        $tag $userfields['fidx'];

        if(
$userfields['fidx'] == "Januar")
        {
          
$monat "1";
        }
        else if(
$userfields['fidx'] == "Februar")
        {
          
$monat "2";
        }
        else if(
$userfields['fidx'] == "März")
        {
          
$monat "3";
        }
        else if(
$userfields['fidx'] == "April")
        {
          
$monat "4";
        }
        else if(
$userfields['fidx'] == "Mai")
        {
          
$monat "5";
        }
        else if(
$userfields['fidx'] == "Juni")
        {
          
$monat "6";
        }
        else if(
$userfields['fidx'] == "Juli")
        {
          
$monat "7";
        }
        else if(
$userfields['fidx'] == "August")
        {
          
$monat "8";
        }
        else if(
$userfields['fidx'] == "September")
        {
          
$monat "9";
        }
        else if(
$userfields['fidx'] == "Oktober")
        {
          
$monat "10";
        }
        else if(
$userfields['fidx'] == "November")
        {
          
$monat "11";
        }
        else if(
$userfields['fidx'] == "Dezember")
        {
          
$monat "12";
        }
        else
        {
          
$monat "";
        }

        
$jahr $userfields['fidx'];

        
$bday "{$tag}-{$monat}-{$jahr}";
        
        
$newuser["birthday"] = $bday;

        
$db->insert_query(TABLE_PREFIX."users"$newuser);
        
$uid $db->insert_id();
    
        
$userfields['fid'] = $uid

In dem ich die letzte Zeile in

PHP-Code:
        $userfields['ufid'] = $uid

änderte funktionierte alles wieder.
Wer eine Wahrheit verbergen will, braucht sie nur offen auszusprechen - sie wird einem ja doch nicht geglaubt.
(Charles Talleyrand)