Registrierung möglich ohne Ausfüllen aller Pflichtfelder

Hast du einen Fehler in der aktuellen Version gefunden ? Diesen kannst du uns hier mitteilen und uns bei der Fehlersuche helfen.
Antworten
golferin
Beiträge: 35
Registriert: 4. Nov 2009, 15:03
Kontaktdaten:

Registrierung möglich ohne Ausfüllen aller Pflichtfelder

Beitrag von golferin »

Ich habe im Registrierung-Folmular ein Pflichtfeld Datenschutzerklärung eingefügt als ja/nein Feld, welches man mit Häckchen markieren soll. Mit Verwunderung stellte ich fest, dass sich die Mitglieder registrieren konnten, ohne sie das Häckchen gesetzt haben. In Einstellungen steht auf jeden Fall, dass dieses Feld ein Pflichtfeld ist und im Registrierung-Formular steht das Sternchen dabei.

http://www.landgolfclub.de/members/adm_ ... new_user=2

Nun tatsächlich ist es möglich das Registrierung-Formular abzuschicken, ohne dieses Pflichtfeld ausgefüllt zu haben. Ich habe dies ausprobiert!

Wäre schön, wen jemand wüsste, wie ich diesen Fehler beheben könnte.

Version 2.1.6

Gruß
golferin
Jochen
Team
Beiträge: 1506
Registriert: 22. Feb 2006, 18:11

Beitrag von Jochen »

Hallo,

das ist bei einem Ja/Nein Feld eine etwas schwierige Angelegenheit. Die Pflichfeldbedingung sagt aus ob ein Feld gefüllt ist. Das ist bei Ja oder Nein aber immer der Fall, der Nutzer hat gar keine andere Möglichkeit als einen der Beiden Möglichkeiten zu übergeben. Von daher ist das mit dem Pflichfeld bei diesem Feld eigentlich überflüssig.

Was Du gerne hättest ist, dass das Feld einen bestimmten Wert hat. Das ist technisch gesehen gleichbedeutend mit der Erwartung, dass in einem Zahlenfehl 4711 eingetragen wird. Diese Funnktion hat Admidio leider nicht an Bord, ist aber kein Fehler.

Gruß Jochen
golferin
Beiträge: 35
Registriert: 4. Nov 2009, 15:03
Kontaktdaten:

Beitrag von golferin »

Danke für die Antwort!

Ich habe mitlterweile auch feststellen können, dass ein anderes von mir eingführtes Pflichtfeld, welches als Zahlenfeld fungiert, ebenso nicht ausgefüllt werden muss, um die Registrierung erfolgreich abschicken zu können. Es ist schade! :-(

Schönen Tag
golferin
Jochen
Team
Beiträge: 1506
Registriert: 22. Feb 2006, 18:11

Beitrag von Jochen »

Hallo,

das mit dem Zahlenfeld habe ich grade mal in unserem Demobereich getestet. Dort konnte ich diesen Fehler nicht nachvollziehen.

Gruß Jochen
golferin
Beiträge: 35
Registriert: 4. Nov 2009, 15:03
Kontaktdaten:

Beitrag von golferin »

Stimmt, ich habe jetzt auch noch mal bei mir ausprobiert. Man kann das Formular nicht abschicken, wenn dieses Feld nicht gefüllt ist.

Hättest Du eine Idee, wie ich das mit dem Feld Datenschutzerklärung machen kann, damit die sich registrierenden Mitglieder es unbedingt ausfüllen müssen, damit die Registrierung erfolgen kann?

Eine Frage habe ich noch zu den Allgemeineinstellungen. (die habe ich schon an anderer Stelle gestellt, aber noch keine Antwort erhalten). In der Homepage URL möchte ich direkten Pfad eingeben, damit die freigeschalteten User in der Antwort Mail den direkten Pfad zum Login erhalten. Nun auch wenn ich die Adresse eingebe:

www.stolberger-schwimmverein.de/mitglieder


und speichere, wird nur www.stolberger-schwimmverein.d gespeichert und in der Antwortmail steht es:
deine Anmeldung auf www.stolberger-schwimmverein.d wurde bestätigt.

solche Seite existiert aber nicht.


Gruß
golferin
golferin
Beiträge: 35
Registriert: 4. Nov 2009, 15:03
Kontaktdaten:

Beitrag von golferin »

Ich habe den Fehler (mit Hilfe eines netten Anwenders von Admidio, mit dem ich ausserhalb der Admidio-Community kommunizierte) den Fehler behoben.

Und zwar im adm_install/db_scripts/upd_1_4_0_db.sql in der 11. Zeile den Wert von 30 auf 50 erhöht und neu istalliert.

Code: Alles auswählen

create table %PRAEFIX%_categories
(
   cat_id                         int (11) unsigned              not null AUTO_INCREMENT,
   cat_org_id                     tinyint(4)                     not null,
   cat_type                       varchar(10)                    not null,
   cat_name                       varchar(50)                    not null,
   cat_hidden                     tinyint(1) unsigned            not null default 0,
   primary key (cat_id)
Jetzt wird die längere URL in den Allgemeineinstellung unter Hompepage nicht abgeschnitten.

Es wäre gut, wenn der cat_name varchar Wert standartmäßig höher als 30 ist. Das wäre mein Verbesserungsvorschlag. Eigentlich gehört der in die andere Rubrik des Forums.

Gruß
golferin
Jochen
Team
Beiträge: 1506
Registriert: 22. Feb 2006, 18:11

Beitrag von Jochen »

Eigentlich gehört der in die andere Rubrik des Forums.
Dann sei doch bitte so nett und schreib es auch dort rein :-) , Damit es hier nicht verloren geht.
Gruß Jochen
golferin
Beiträge: 35
Registriert: 4. Nov 2009, 15:03
Kontaktdaten:

Beitrag von golferin »

schon geschehen! :lol:
Elke
Beiträge: 27
Registriert: 17. Okt 2008, 10:33

Beitrag von Elke »

Hallo golferin,

zunächst:
Ich hatte das selbe Problem und habe deswegen Änderungen am Code vorgenommen. Allerdings liegen diese Änderungen mehr als ein Jahr zurück. Deswegen kann ich auch nicht versprechen, ob die folgenden Änderungen ausreichen bzw. die richtigen sind.
Aber Versuch macht kluch... ;-)

1. Kopiere die Datei profile_save.php auf Deinen lokalen Rechner, die sich im Ordner adm_program/modules/profile befindet. (Sicherungsdatei erstellen für den Fall aller Fälle)

2. Öffne die Datei profile_save.php im Editiermodus.

3. Suche nach den folgenden Zeilen

Code: Alles auswählen

// nun alle Profilfelder pruefen
foreach($user->db_user_fields as $key => $value)
{
    $post_id = "usf-". $value['usf_id'];    
//viele weitere Anweisungen folgen
.... 
Hinweis: nach der foreach-Schleife müsste folgender Code erscheinen:

Code: Alles auswählen

$login_name_changed = false;
$forum_old_username = "";

if($g_current_user->isWebmaster() || $new_user > 0)
{
    // Loginname darf nur vom Webmaster bzw. bei Neuanlage geaendert werden    
    if($_POST['usr_login_name'] != $user->getValue("usr_login_name"))
//viele weitere Anweisungen folgen
....
4. Lösche die o.g. foreach-schleife inkl. dem Code, der sich innerhalb der foreach-Schleife befindet

5. Kopiere nun den folgenden Code an die Stelle, wo vorher die foreach-Schleife war.

Code: Alles auswählen

// nun alle Profilfelder pruefen
foreach($user->db_user_fields as $key => $value)
{
    $post_id = "usf-". $value['usf_id'];    
    $eb_update_field = true;
        // Ausnahme Felder, die nur fuer Organisationen oder Personen notwendig sind
	$pos_o=strpos($value['usf_name'],'[O]');
	$pos_e=strpos($value['usf_name'],'[E]');
        if($_POST['art']==3 or $_POST['usf-58']==1 or $eb_my_instjn==1) {
		if ($pos_e!==false) {$eb_update_field = false;}
        } elseif($pos_o!==false) {
            $eb_update_field = false;
        }

    if($eb_update_field == true) 
    {
    if(isset($_POST[$post_id])) 
    {
        $update_field = true;
        // gesperrte Felder duerfen nur von berechtigten Benutzern geaendert werden 
        // Ausnahme bei der Registrierung
        if($value['usf_disabled'] == 1 && $g_current_user->editUsers() == false && $new_user != 2)
        {
            $update_field = false;
        }

        // versteckte Felder duerfen nur im eigenen Profil, oder mit dem Recht alle User
        // zu bearbeiten, geaendert werden
        if($value['usf_hidden'] == 1 && $g_current_user->editUsers() == false 
        && $usr_id != $g_current_user->getValue("usr_id"))
        {
            $update_field = false;
        }
        
        if($update_field)
        {    
		$pos=strpos($value['usf_name'],' [');
	   	$bezeichnung=$value['usf_name'];
	   	if ($pos!==false) $bezeichnung=substr($value['usf_name'],0,$pos);

            // Pflichtfelder muessen gefuellt sein
            // E-Mail bei Restrierung immer !!!
            if(($value['usf_mandatory'] == 1 && strlen($_POST[$post_id]) == 0)
            || ($new_user == 2 && $value['usf_name'] == "E-Mail" && strlen($_POST[$post_id]) == 0))
            {
//                $g_message->show("feld", $value['usf_name']);
                $g_message->show("feld", $bezeichnung);
            }
            
            if(strlen($_POST[$post_id]) > 0)
            {
                // Pruefungen fuer die entsprechenden Datentypen
                if($value['usf_type'] == "CHECKBOX")
                {
                    // Checkbox darf nur 1 oder 0 haben
                    if($_POST[$post_id] == 0 && $value['usf_mandatory'] == 1) {
       					$g_message->show("feld", $bezeichnung);
                    }
                    elseif($_POST[$post_id] != 0 && $_POST[$post_id] != 1)
                    {
                        $g_message->show("invalid");
                    }
                }
                elseif($value['usf_type'] == "DATE")
                {
                    // Datum muss gueltig sein und formatiert werden
                    if(dtCheckDate($_POST[$post_id]) == false)
                    {
                        $g_message->show("date_invalid", $bezeichnung);
                    }
                    $_POST[$post_id] = dtFormatDate($_POST[$post_id], "Y-m-d");
                }
                elseif($value['usf_type'] == "EMAIL")
                {
                    // Pruefung auf gueltige E-Mail-Adresse
                    if(!isValidEmailAddress($_POST[$post_id]))
                    {
                        $g_message->show("email_invalid");
                    }        
                }
                elseif($value['usf_type'] == "NUMERIC")
                {
                    // Zahl muss numerisch sein
                    if(is_numeric(strtr($_POST[$post_id], ",.", "00")) == false)
                    {
                        $g_message->show("field_numeric", $bezeichnung);
                    }
                }
            }
    
            $user->setValue($value['usf_name'], $_POST[$post_id]);
        }
    }
    else
    {
	$my_update_field = true;
		$pos=strpos($value['usf_name'],' [');
	   	$bezeichnung=$value['usf_name'];
	   	if ($pos!==false) $bezeichnung=substr($value['usf_name'],0,$pos);
	if ($my_update_field == true) {
        	// Checkboxen uebergeben bei 0 keinen Wert, deshalb diesen hier setzen
        	if($value['usf_type'] == "CHECKBOX")
        	{
            		if($value['usf_mandatory'] == 1) {
                    		if($_POST[$post_id] == 0 or $_POST[$post_id] == "") {
       					$g_message->show("feld", $bezeichnung);
            				$user->setValue($value['usf_name'], "0");
                    		}
			} else {
            			$user->setValue($value['usf_name'], "0");
            		}	
        	}
	}
    }
    }
}

Ich wünsche Dir/uns viel Erfolg. ;-)

VG Elke
golferin
Beiträge: 35
Registriert: 4. Nov 2009, 15:03
Kontaktdaten:

Beitrag von golferin »

So, Elke, ich habe ausprobiert. Leider funzt nicht. Erstens, konnte man das Registrierungsformular absenden und die neue Anmeldung erschien, allerdings standen da ausser Benutzernamen keine Angaben, obwohl ich alle Pflichtfelder (ausser eben JA/NEIN Feld) ausfüllte.

Per Mail kam dann folgende Meldung:

Code: Alles auswählen

Es hat sich ein neuer Benutzer auf www.stolberger-schwimmverein.de/intern registriert.
 
Nachname:
Vorname:
E-Mail:
 
 
Diese Nachricht wurde automatisch erzeugt.
 
 
also keine Angaben zum Nachnamen, Vornamen und der E-Mailadresse, obowhl ich sie im Registrierungsformular ausfüllte.


:?:



Gruß
golferin
Elke
Beiträge: 27
Registriert: 17. Okt 2008, 10:33

Beitrag von Elke »

Das ist schlecht!

Um relativ schnell herauszufinden woran es scheitert, möchte ich Dich bitten mir die Sicherungsdatei bzw. die foreach-Schleife der Version 2.1.6 zuzusenden bzw. zu veröffentlichen. Ich werde dann versuchen den Fehler herauszufinden.

VG Elke
golferin
Beiträge: 35
Registriert: 4. Nov 2009, 15:03
Kontaktdaten:

Beitrag von golferin »

Guten Morgen!

Aber gerne! Hoffentlich klappt es! :)

Code: Alles auswählen

<?php
/******************************************************************************
 * Profil/Registrierung wird angelegt bzw. gespeichert
 *
 * Copyright    : (c) 2004 - 2009 The Admidio Team
 * Homepage     : http://www.admidio.org
 * Module-Owner : Markus Fassbender
 * License      : GNU Public License 2 http://www.gnu.org/licenses/gpl-2.0.html
 *
 * Uebergaben:
 *
 * user_id :  ID des Benutzers, dessen Profil bearbeitet werden soll
 * new_user : 0 - (Default) vorhandenen User bearbeiten
 *            1 - Neuen Benutzer hinzufuegen.
 *            2 - Registrierung entgegennehmen
 *            3 - Registrierung zuordnen/akzeptieren
 *
 *****************************************************************************/

require_once('../../system/common.php');
require_once('../../system/classes/system_mail.php');
require_once('../../system/classes/table_members.php');

// im ausgeloggten Zustand koennen nur Registrierungen gespeichert werden
if($g_valid_login == false)
{
    $_GET['new_user'] = 2;
}

// Uebergabevariablen pruefen

$new_user = 0;
$usr_id   = 0;

if(array_key_exists('new_user', $_GET) && is_numeric($_GET['new_user']))
{
    $new_user = $_GET['new_user'];
}

// User-ID nur uebernehmen, wenn ein vorhandener Benutzer auch bearbeitet wird
if(isset($_GET['user_id']) && ($new_user == 0 || $new_user == 3))
{
    if(is_numeric($_GET['user_id']) == false)
    {
        $g_message->show('invalid');
    }
    $usr_id  = $_GET['user_id'];
}

// pruefen, ob Modul aufgerufen werden darf
switch($new_user)
{
    case 0:
        // prueft, ob der User die notwendigen Rechte hat, das entsprechende Profil zu aendern
        if($g_current_user->editProfile($usr_id) == false)
        {
            $g_message->show('norights');
        }
        break;

    case 1:
        // prueft, ob der User die notwendigen Rechte hat, neue User anzulegen
        if($g_current_user->editUsers() == false)
        {
            $g_message->show('norights');
        }
        break;

    case 2:
    case 3:
        // Registrierung deaktiviert, also auch diesen Modus sperren
        if($g_preferences['registration_mode'] == 0)
        {
            $g_message->show('module_disabled');
        }
        break;
}

$_SESSION['profile_request'] = $_REQUEST;

if(!isset($_POST['usr_login_name']))
{
    $_POST['usr_login_name'] = '';
}

// User auslesen
$user = new User($g_db, $usr_id);


/*------------------------------------------------------------*/
// Feldinhalte pruefen der User-Klasse zuordnen
/*------------------------------------------------------------*/

// bei Registrierung muss Loginname und Pw geprueft werden
if($new_user == 2)
{
    if(strlen($_POST['usr_login_name']) == 0)
    {
        $g_message->show('feld', 'Benutzername');
    }

    // Passwort sollte laenger als 6 Zeichen sein
    if(strlen($_POST['usr_password']) < 6)
    {
        $g_message->show('password_length');
    }

    // beide Passwortfelder muessen identisch sein
    if ($_POST['usr_password'] != $_POST['password2'])
    {
        $g_message->show('passwords_not_equal');
    }

    if(strlen($_POST['usr_password']) == 0)
    {
        $g_message->show('feld', 'Passwort');
    }
}

// nun alle Profilfelder pruefen
foreach($user->userFieldData as $field)
{
    $post_id = 'usf-'. $field->getValue('usf_id');    
    
    if(isset($_POST[$post_id])) 
    {
        // Pflichtfelder muessen gefuellt sein
        // E-Mail bei Restrierung immer !!!
        if(($field->getValue('usf_mandatory') == 1 && strlen($_POST[$post_id]) == 0)
        || ($new_user == 2 && $field->getValue('usf_name') == 'E-Mail' && strlen($_POST[$post_id]) == 0))
        {
            $g_message->show('feld', $field->getValue('usf_name'));
        }
        
        if(strlen($_POST[$post_id]) > 0)
        {
            // Pruefungen fuer die entsprechenden Datentypen
            if($field->getValue('usf_type') == 'CHECKBOX')
            {
                // Checkbox darf nur 1 oder 0 haben
                if($_POST[$post_id] != 0 && $_POST[$post_id] != 1)
                {
                    $g_message->show('invalid');
                }
            }
            elseif($field->getValue('usf_type') == 'DATE')
            {
                // Datum muss gueltig sein und formatiert werden
                if(dtCheckDate($_POST[$post_id]) == false)
                {
                    $g_message->show('date_invalid', $field->getValue('usf_name'));
                }
                $_POST[$post_id] = dtFormatDate($_POST[$post_id], 'Y-m-d');
            }
            elseif($field->getValue('usf_type') == 'EMAIL')
            {
                // Pruefung auf gueltige E-Mail-Adresse
                if(!isValidEmailAddress($_POST[$post_id]))
                {
                    $g_message->show('email_invalid');
                }        
            }
            elseif($field->getValue('usf_type') == 'NUMERIC')
            {
                // Zahl muss numerisch sein
                if(is_numeric(strtr($_POST[$post_id], ',.', '00')) == false)
                {
                    $g_message->show('field_numeric', $field->getValue('usf_name'));
                }
            }
        }

        $user->setValue($field->getValue('usf_name'), $_POST[$post_id]);
    }
    else
    {
        // Checkboxen uebergeben bei 0 keinen Wert, deshalb diesen hier setzen
        if($field->getValue('usf_type') == 'CHECKBOX')
        {
            $user->setValue($field->getValue('usf_name'), '0');
        }
        elseif($field->getValue('usf_mandatory') == 1)
        {
    		$g_message->show('feld', $field->getValue('usf_name'));
        }
    }
}

$login_name_changed = false;
$forum_old_username = '';

if($g_current_user->isWebmaster() || $new_user > 0)
{
    // Loginname darf nur vom Webmaster bzw. bei Neuanlage geaendert werden    
    if($_POST['usr_login_name'] != $user->getValue('usr_login_name'))
    {
        if(strlen($_POST['usr_login_name']) > 0)
        {
            // pruefen, ob der Benutzername bereits vergeben ist
            $sql = 'SELECT usr_id FROM '. TBL_USERS. '
                     WHERE usr_login_name LIKE "'. $_POST['usr_login_name']. '"';
            $g_db->query($sql);

            if($g_db->num_rows() > 0)
            {
                $row = $g_db->fetch_array();

                if(strcmp($row['usr_id'], $usr_id) != 0)
                {
                    $g_message->show('login_name');
                }
            }

            // pruefen, ob der Benutzername bereits im Forum vergeben ist, 
            // Benutzernamenswechesel und diese Dinge
            if($g_preferences['enable_forum_interface'])
            {
                // pruefen, ob der Benutzername bereits im Forum vergeben ist
                if($g_forum->userExists($_POST['usr_login_name']))
                {
                    $g_message->show('login_name_forum');
                }
                
                // bisherigen Loginnamen merken, damit dieser spaeter im Forum geaendert werden kann
                $forum_old_username = '';
                if(strlen($user->getValue('usr_login_name')) > 0)
                {
                    $forum_old_username = $user->getValue('usr_login_name');
                }
            }
        }

        $login_name_changed = true;
        $user->setValue('usr_login_name', $_POST['usr_login_name']);
    }    
}

// falls Registrierung, dann die entsprechenden Felder noch besetzen
if($new_user == 2)
{
    $user->setValue('usr_valid', 0);
    $user->setValue('usr_reg_org_shortname', $g_current_organization->getValue('org_shortname'));
    $user->setValue('usr_password', $_POST['usr_password']);
}


// Falls der User sich registrieren wollte, aber ein Captcha geschaltet ist,
// muss natuerlich der Code ueberprueft werden
if ($new_user == 2 && $g_preferences['enable_registration_captcha'] == 1)
{
    if ( !isset($_SESSION['captchacode']) || admStrToUpper($_SESSION['captchacode']) != admStrToUpper($_POST['captcha']) )
    {
        $g_message->show('captcha_code');
    }
}

/*------------------------------------------------------------*/
// Benutzerdaten in Datenbank schreiben
/*------------------------------------------------------------*/

if($user->getValue('usr_id') == 0)
{
    // der User wird gerade angelegt und die ID kann erst danach in das Create-Feld gesetzt werden
    $user->save();
    if($new_user == 1)
    {
        $user->setValue('usr_usr_id_create', $g_current_user->getValue('usr_id'));
    }
    else
    {
        $user->setValue('usr_usr_id_create', $user->getValue('usr_id'));
    }
}

// Aenderungen speichern
$ret_code = $user->save();

// wurde der Loginname vergeben oder geaendert, so muss ein Forumaccount gepflegt werden
// bei einer Bestaetigung der Registrierung muss der Account aktiviert werden
if($g_preferences['enable_forum_interface'] && ($login_name_changed || $new_user == 3))
{
    $set_admin = false;
    if($g_preferences['forum_set_admin'] == 1 && $user->isWebmaster())
    {
        $set_admin = true;
    }
    $g_forum->userSave($user->getValue('usr_login_name'), $user->getValue('usr_password'), $user->getValue('E-Mail'), $forum_old_username, $new_user, $set_admin);
}

// wenn Daten des eingeloggten Users geaendert werden, dann Session-Variablen aktualisieren
if($user->getValue('usr_id') == $g_current_user->getValue('usr_id'))
{
    $g_current_user = $user;
}

unset($_SESSION['profile_request']);
$_SESSION['navigation']->deleteLastUrl();

/*------------------------------------------------------------*/
// je nach Aufrufmodus auf die richtige Seite weiterleiten
/*------------------------------------------------------------*/
if($new_user == 2)
{
    /*------------------------------------------------------------*/
    // Registrierung eines neuen Benutzers
    // -> E-Mail an alle Webmaster schreiben
    /*------------------------------------------------------------*/
    $err_code = 'anmeldung';
    $err_text = '';

    // nur ausfuehren, wenn E-Mails auch unterstuetzt werden und die Webmasterbenachrichtung aktiviert ist
    if($g_preferences['enable_system_mails'] == 1 && $g_preferences['enable_registration_admin_mail'] == 1)
    {
        $sql = 'SELECT DISTINCT first_name.usd_value as first_name, last_name.usd_value as last_name, email.usd_value as email
                  FROM '. TBL_ROLES. ', '. TBL_CATEGORIES. ', '. TBL_MEMBERS. ', '. TBL_USERS. '
                 RIGHT JOIN '. TBL_USER_DATA. ' email
                    ON email.usd_usr_id = usr_id
                   AND email.usd_usf_id = '. $g_current_user->getProperty('E-Mail', 'usf_id'). '
                   AND LENGTH(email.usd_value) > 0
                  LEFT JOIN '. TBL_USER_DATA. ' first_name
                    ON first_name.usd_usr_id = usr_id
                   AND first_name.usd_usf_id = '. $g_current_user->getProperty('Vorname', 'usf_id'). '
                  LEFT JOIN '. TBL_USER_DATA. ' last_name
                    ON last_name.usd_usr_id = usr_id
                   AND last_name.usd_usf_id = '. $g_current_user->getProperty('Nachname', 'usf_id'). '
                 WHERE rol_approve_users = 1
                   AND rol_cat_id        = cat_id
                   AND cat_org_id        = '. $g_current_organization->getValue('org_id'). '
                   AND mem_rol_id        = rol_id
                   AND mem_begin        <= "'.DATE_NOW.'"
                   AND mem_end           > "'.DATE_NOW.'"
                   AND mem_usr_id        = usr_id
                   AND usr_valid         = 1 ';
        $result = $g_db->query($sql);

        while($row = $g_db->fetch_array($result))
        {
            // Mail an die Webmaster schicken, dass sich ein neuer User angemeldet hat
            $sysmail = new SystemMail($g_db);
            $sysmail->addRecipient($row['email'], $row['first_name']. ' '. $row['last_name']);

            if($sysmail->sendSystemMail('SYSMAIL_REGISTRATION_WEBMASTER', $user) == false)
            {
                $err_code = 'mail_not_send';
                $err_text = $row['email'];
            }
        }
    }

    // nach Registrierung auf die Startseite verweisen
    $g_message->setForwardUrl($g_homepage);
    $g_message->show($err_code, $err_text);
}
elseif($new_user == 3 || $usr_id == 0)
{
    /*------------------------------------------------------------*/
    // neuer Benutzer wurde ueber Webanmeldung angelegt und soll nun zugeordnet werden
    // oder ein neuer User wurde in der Benutzerverwaltung angelegt
    /*------------------------------------------------------------*/

    if($usr_id > 0) // Webanmeldung
    {
        // User auf aktiv setzen
        $user->setValue('usr_valid', 1);
        $user->setValue('usr_reg_org_shortname', '');
        $user->save();

        // nur ausfuehren, wenn E-Mails auch unterstuetzt werden
        if($g_preferences['enable_system_mails'] == 1)
        {
            // Mail an den User schicken, um die Anmeldung zu bestaetigen
            $sysmail = new SystemMail($g_db);
            $sysmail->addRecipient($user->getValue('E-Mail'), $user->getValue('Vorname'). ' '. $user->getValue('Nachname'));
            $sysmail->sendSystemMail('SYSMAIL_REGISTRATION_USER', $user);
        }
    }

    // neuer User -> Rollen zuordnen
    if($g_current_user->assignRoles())
    {
        header('Location: roles.php?user_id='. $user->getValue('usr_id'). '&new_user=1');
        exit();
    }
    else
    {
        // da der angemeldete Benutzer keine Rechte besitzt Rollen zu zuordnen, 
        // wird der neue User der Default-Rolle zugeordnet
        if($g_preferences['profile_default_role'] == 0)
        {
            $g_message->show('no_default_role');
        }
        $member = new TableMembers($g_db);
        $member->startMembership($g_preferences['profile_default_role'], $user->getValue('usr_id'));

        $g_message->setForwardUrl($_SESSION['navigation']->getPreviousUrl(), 2000);
        $g_message->show('save');
    }
}
elseif($new_user == 0 && $user->getValue('usr_valid') == 0)
{
    // neue Registrierung bearbeitet
    $g_message->setForwardUrl($_SESSION['navigation']->getPreviousUrl(), 2000);
    $g_message->show('save');
}
else
{
    // zur Profilseite zurueckkehren    
    $g_message->setForwardUrl($_SESSION['navigation']->getUrl(), 2000);
    $g_message->show('save');
}
?>


VG
golferin
Antworten