ilch Forum » Allgemein » HTML, PHP, SQL,... » Registrierung erweitern die 2.

Geschlossen
  1. #1
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo Leute,
    hier nochmal das Thema, da das gleiche Thema nicht weiter bearbeitet werden kann. nicht von mir und nicht von anderen.
    Fehler "Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 71 bytes) in /home/ilch_de/www/include/includes/func/bbcode.php on line 216 ". Es geht aber nicht um diesen Fehler.

    Also, ich möchte die Registrierung dahingehend erweitern, dass als Pflichteingabe der Vorname, der Nachname und die Mitgliedsnummer eingetragen werden müssen. In der regist.htm habe ich das eingetragen.
            <tr>
                <td class="Cmite" width="60">{_lang_nachname}</td>
                <td class="Cnorm"><input type="text" value="{nachname}" maxlength="15"></td>
            </tr>
            <tr>
                <td class="Cmite" width="60">{_lang_vorname}</td>
                <td class="Cnorm"><input type="text" value="{vorname}" maxlength="15"></td>
            </tr>
            <tr>
                <td class="Cmite" width="60">{_lang_mtgnr}</td>
                <td class="Cnorm"><input type="text" value="{mtgnr}" maxlength="15"></td>
            </tr>
            <tr>
                <td class="Cmite">{_lang_mail}</td>
                <td class="Cnorm"><input type="text" maxlength="100" value="{email}" name="email"></td>
            </tr>
        {EXPLODE}
            <tr>
                <td class="Cmite">{_lang_password}</td>
                <td class="Cnorm"><input type="password" name="pass"></td>
            </tr>

    Bis jetzt bin ich so weit, dass meine Einträge fehlerfrei aufgenommen werden, nur nicht abgespeichert. Nach dem Abschicken gelangen die Daten hier hin: "Noch nicht bestätigte Registrierungen verwalten". Hier taucht Vornama, Nachname und Mitgliedsnummer aber schon nicht auf. Wenn ich den Haknen setzte kann ich in der Mitgliederverwaltung auch den User finden und aufrufen. Nur werden die Daten für "Nachname", "Vorname", und "Mitgliedsnummer" nicht abgespeichert.
    In der /includes/func/user.php habe ich folgendes in Zeile 354 geändert
    function user_regist($name, $mail, $nachname, $vorname, $mrgnr, $pass) {

    die Datenfelder in der Tabelle "user" nennen sich "nachname", "vorname" und "mtgnr". Anbei meine geänderten Dateien.

    contens/user/regist.php
    <?php
    
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined('main') or die('no direct access');
    
    if (!isset($_GET['step'])) {
        $_GET['step'] = 1;
    }
    
    if ($allgAr['forum_regist'] == 0) {
        # user duerfen sich nicht registrieren.
        $title = $allgAr['title'] . ' :: Users :: Keine registrierung m&ouml;glich';
        $hmenu = $extented_forum_menu . '<a class="smalfont" href="?user">User</a><b> &raquo; </b>Keine Registrierung m&ouml;glich' . $extented_forum_menu_sufix;
        $design = new design($title, $hmenu, 1);
        $design->header();
        $tpl = new tpl('user/login');
        echo '<b> Der Administrator hat festgelegt das man sich nicht registrieren kann </b>';
        $tpl->set_out('WDLINK', '?' . $allgAr['smodul'], 0);
        $design->footer();
        exit();
    }
    
    switch ($menu->get(2)) {
        default :
            $title = $allgAr['title'] . ' :: Users :: Registrieren :: Step 1 von 3';
            $hmenu = $extented_forum_menu . '<a class="smalfont" href="?user">User</a><b> &raquo; </b><a class="smalfont" href="?user-regist">Registrieren</a><b> &raquo; </b>Step 1 von 3' . $extented_forum_menu_sufix;
            $design = new design($title, $hmenu, 1);
            $design->header();
            $tpl = new tpl('user/regist');
            $tpl->set_out('regeln', bbcode($allgAr['allg_regeln']), 0);
            $design->footer();
            break;
    
        case 2 :
            $name = '';
            $email = '';
            $nachname = '';
            $vorname = '';
            $mtgnr = '';
            if (!empty($_POST['nutz'])) {
                $name = escape($_POST['nutz'], 'string');
            }
            if (!empty($_POST['email'])) {
                $email = escape($_POST['email'], 'string');
            }
            if (!empty($_POST['nachname'])) {
                $nachname = escape($_POST['nachname'], 'string');
            }
            if (!empty($_POST['vorname'])) {
                $vorname = escape($_POST['vorname'], 'string');
            }
            if (!empty($_POST['mtgnr'])) {
                $mtgnr = escape($_POST['mtgnr'], 'string');
            }
    
            $ch_name = false;
            $xname = escape_nickname($name);
            if (!empty($name) AND $xname == $name AND 0 == db_result(db_query("SELECT COUNT(*) FROM prefix_user WHERE name = BINARY '" . $name . "'"), 0)) {
                $ch_name = true;
            }
    
            $chkAntispam = chk_antispam('regist');
            if (empty($name) OR empty($email) OR $name != $xname OR $ch_name == false OR !$chkAntispam) {
                $title = $allgAr['title'] . ' :: Users :: Registrieren :: Step 2 von 3';
                $hmenu = $extented_forum_menu . '<a class="smalfont" href="?user">User</a><b> &raquo; </b><a class="smalfont" href="?user-regist">Registrieren</a><b> &raquo; </b>Step 2 von 3' . $extented_forum_menu_sufix;
                $design = new design($title, $hmenu, 1);
                $design->header();
                if (isset($_POST['register'])) {
                    if (empty($name) OR empty($email)) {
                        $fehler = $lang['entereddataincomplete'];
                    } elseif ($name != $xname) {
                        $fehler = $lang['wrongnickname'];
                    } elseif ($ch_name == false) {
                        $fehler = $lang['namealreadyinuse'];
                    } elseif (!$chkAntispam) {
                        $fehler = $lang['wrongcaptchaentered']; //antispamtxt
                    }
                } else {
                    $fehler = '';
                }
                $tpl = new tpl('user/regist');
                $tpl->set('name', $name);
                $tpl->set('email', $email);
                $tpl->set('nachname', $nachname);
                $tpl->set('vorname', $vorname);
                $tpl->set('mtgnr', $mtgnr);
                $tpl->set('antispam', get_antispam('regist', 0));
                $tpl->set_out('FEHLER', $fehler, 1);
                if ($allgAr['forum_regist_user_pass'] == 1) {
                    $tpl->out(2);
                }
                $tpl->out(3);
            } else {
                $pass = genkey(8);
                if (!empty($_POST['pass'])) {
                    $pass = escape($_POST['pass'], 'string');
                }
                user_regist($name, $email, $nachname, $vorname, $mtgnr, $pass);
    
                $tpl = new tpl('user/regist');
                $title = $allgAr['title'] . ' :: Users :: Registrieren :: Step 3 von 3';
                $hmenu = $extented_forum_menu . '<a class="smalfont" href="?user">User</a><b> &raquo; </b><a class="smalfont" href="?user-regist">Registrieren</a><b> &raquo; </b>Step 3 von 3' . $extented_forum_menu_sufix;
                $design = new design($title, $hmenu, 1);
                $design->header();
                $tpl->set_out('NAME', $name, 4);
            }
            $design->footer();
            break;
    }
    ?>

    eigefügt in die "de.php
    'mtgnr' => 'Mitgliedsnummer',
    'nachname' => 'Nachname',
    'vorname' => 'Vorname',

    Vieleicht kann mir ein Nitglied mit ein paar Tips weiterhelfen.

    MfG heinz2


    verwendete ilch Version: 1.1 P

    betroffene Homepage: Fischerfreunde-haimhausen.de
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    FeTTsack Hall Of Fame
    Registriert seit
    27.06.2012
    Beiträge
    188
    Beitragswertungen
    26 Beitragspunkte
    Hab dir gestern Abend per pm geschrieben was machen musst.
    Hast das eingebaut??
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Ahrtas Moderator
    Registriert seit
    17.12.2007
    Beiträge
    2.368
    Beitragswertungen
    210 Beitragspunkte
    Also das ist schon ein bisschen Kauderwelsch kann das sein?
    Du solltest dich etwas mehr mit der Thematik beschäftigen, ansonsten kanns sogar soweit gehen dass du dein Anmeldeformular für Schadcode angreifbar machst.

    Punkt 1 bevor Daten an das Script übergeben werden ist, den Felder einen Namen zu geben.
    Beispiel
    ZitatZitat
    <input type="text" name="vorname" value="{vorname}" maxlength="15">

    Füge den Feldnamen am besten nach Type ein, dann vergisst du ihn nicht.

    Ohne Feldnamen kannst du kein Feld an PHP übergeben, ohne es direkt anzusprechen.


    Punkt 2 das Script überprüft nun die Variable bzw. das Feld $name, aber das gibt es ja nicht mehr. Hier musst du dich jetzt entscheiden was das Script als Pflichtfeld prüfen soll und $name durch dein Pflichtfeld ersetzen z.B. $mtgnr.


    Also Punkt 1 ganz wichtig, das hast du bisher nicht getan und deswegen kann das Script auch keine Felder/Werte zuordnen und kann selbstverständlich auch nicht damit arbeiten.

    Punkt 2 ist wichtig zu ändern da das Script im Moment ein Feld als Pflichtfeld prüft was garnicht mehr vorhanden ist!


    Zuletzt modifiziert von Ahrtas am 25.06.2015 - 13:14:49
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Rock@wulf Hall Of Fame
    Registriert seit
    03.06.2004
    Beiträge
    3.282
    Beitragswertungen
    239 Beitragspunkte
    Schau bitte mal in die FAQ und die Entwickler Doku

    ich habe gestern Abend schon im anderen Post versucht zu antworten mochte er aber nicht.

    externer Link

    externer Link

    Gruß
    Meine Postings repräsentieren meine Meinung wenn nicht anders gekennzeichnet.
    MFG Rock@wulf
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo Rock@wulf,

    danke für den Hinweis zu dem Link. Genau das habe ich gesucht. Habe die Mitgliedsnummer ebenfalls eingebracht und klappt.

    MfG heinz2


    Zuletzt modifiziert von heinz2 am 29.06.2015 - 11:12:39
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo Leute,
    also es funktioniert. Jetzt wollte ich den Schritt mit der E-Mail einfügen. Also E-Mail wiederholen. Soweit so gut. Die regist.htm habe ich abgeändert
    <tr>
                <td class="Cmite">{_lang_mail}</td>
                <td class="Cnorm"><input type="text" maxlength="100" value="{email}" name="email"></td>
            </tr>
            <tr>
                <td class="Cmite">{_lang_mail}</td>
                <td class="Cnorm"><input type="text" maxlength="100" value="{email}" name="email_wdh"></td>
            </tr>

    In einem vorangegangenem Beitrag (der nicht funktioniert) hatte ich das Thema schon einmal aufgegriffen.
    externer Link
    Die von FeTTsack gemachten Angaben kann ich aber irgendwie nicht umsetzen.
    Hier mal meine regist.php
    <?php
    
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined('main') or die('no direct access');
    
    if (!isset($_GET['step'])) {
        $_GET['step'] = 1;
    }
    
    if ($allgAr['forum_regist'] == 0) {
        # user duerfen sich nicht registrieren.
        $title = $allgAr['title'] . ' :: Users :: Keine registrierung m&ouml;glich';
        $hmenu = $extented_forum_menu . '<a class="smalfont" href="?user">User</a><b> &raquo; </b>Keine Registrierung m&ouml;glich' . $extented_forum_menu_sufix;
        $design = new design($title, $hmenu, 1);
        $design->header();
        $tpl = new tpl('user/login');
        echo '<b> Der Administrator hat festgelegt das man sich nicht registrieren kann </b>';
        $tpl->set_out('WDLINK', '?' . $allgAr['smodul'], 0);
        $design->footer();
        exit();
    }
    
    switch ($menu->get(2)) {
        default :
            $title = $allgAr['title'] . ' :: Users :: Registrieren :: Step 1 von 3';
            $hmenu = $extented_forum_menu . '<a class="smalfont" href="?user">User</a><b> &raquo; </b><a class="smalfont" href="?user-regist">Registrieren</a><b> &raquo; </b>Step 1 von 3' . $extented_forum_menu_sufix;
            $design = new design($title, $hmenu, 1);
            $design->header();
            $tpl = new tpl('user/regist');
            $tpl->set_out('regeln', bbcode($allgAr['allg_regeln']), 0);
            $design->footer();
            break;
    
        case 2 :
            $name = '';
            $email = '';
            $firstname = '';
            $familyname = '';
            $mitnr = '';
            if (!empty($_POST['nutz'])) {
                $name = escape($_POST['nutz'], 'string');
            }
            if (!empty($_POST['email'])) {
                $email = escape($_POST['email'], 'string');
            }
            $email_wdh = '';
            if (!empty($_POST['email_wdh'])) {
            $email_wdh = escape($_POST['email_wdh'],'string');
            }
            if (!empty($_POST['firstname'])) {
                $firstname = escape($_POST['firstname'], 'string');
            }
            if (!empty($_POST['familyname'])) {
                $familyname = escape($_POST['familyname'], 'string');
            }
            if (!empty($_POST['mitnr'])) {
                $mitnr = escape($_POST['mitnr'], 'string');
            }
    
            $checkNotEmpty = array(
                'name'  => 'Nickname',
                'email' => 'E-Mail',
                'firstname' => 'Vorname',
                'familyname' => 'Nachname',
                'mitnr' => 'Mitgliedsnummer'
            );
    
            $emptyErrorMsg = '';
            foreach ($checkNotEmpty as $field => $label) {
                if (empty($$field)) {
                    $emptyErrorMsg .= '• <b>' . $label . '</b> ist ein Pflichtfeld!' . PHP_EOL;
                }
            }
    
            $ch_name = false;
            $xname = escape_nickname($name);
            if (!empty($name) AND $xname == $name AND 0 == db_result(db_query("SELECT COUNT(*) FROM prefix_user WHERE name = BINARY '" . $name . "'"), 0)) {
                $ch_name = true;
            }
    
            $chkAntispam = chk_antispam('regist');
            if (!empty($emptyErrorMsg) OR $name != $xname OR $ch_name == false OR !$chkAntispam) {
                $title = $allgAr['title'] . ' :: Users :: Registrieren :: Step 2 von 3';
                $hmenu = $extented_forum_menu . '<a class="smalfont" href="?user">User</a><b> » </b><a class="smalfont" href="?user-regist">Registrieren</a><b> » </b>Step 2 von 3' . $extented_forum_menu_sufix;
                $design = new design($title, $hmenu, 1);
                $design->header();
                if (isset($_POST['register'])) {
                    if (!empty($emptyErrorMsg)) {
                        $fehler = $lang['entereddataincomplete'] . '<br/>' . $emptyErrorMsg;
                    } elseif ($name != $xname) {
                        $fehler = $lang['wrongnickname'];
                    } elseif ($ch_name == false) {
                        $fehler = $lang['namealreadyinuse'];
                    } elseif (!$chkAntispam) {
                        $fehler = $lang['wrongcaptchaentered']; //antispamtxt
                    }
                } else {
                    $fehler = '';
                }
                $tpl = new tpl('user/regist');
                $tpl->set('name', $name);
                $tpl->set('email', $email);
                $tpl->set('firstname', $firstname);
                $tpl->set('familyname', $familyname);
                $tpl->set('mitnr', $mitnr);
                $tpl->set('antispam', get_antispam('regist', 0));
                $tpl->set_out('FEHLER', $fehler, 1);
                if ($allgAr['forum_regist_user_pass'] == 1) {
                    $tpl->out(2);
                }
                $tpl->out(3);
            } else {
                $pass = genkey(8);
                if (!empty($_POST['pass'])) {
                    $pass = escape($_POST['pass'], 'string');
                }
                user_regist($name, $firstname, $familyname, $mitnr, $email, $pass);
    
                $tpl = new tpl('user/regist');
                $title = $allgAr['title'] . ' :: Users :: Registrieren :: Step 3 von 3';
                $hmenu = $extented_forum_menu . '<a class="smalfont" href="?user">User</a><b> » </b><a class="smalfont" href="?user-regist">Registrieren</a><b> » </b>Step 3 von 3' . $extented_forum_menu_sufix;
                $design = new design($title, $hmenu, 1);
                $design->header();
                $tpl->set_out('NAME', $name, 4);
            }
            $design->footer();
            break;
    }
    ?>

    Was sollte ich wo eintragen, so das der Abgleich der richtigen Eingabe der E-Mail-Adresse funktioniert?

    MfG heinz2
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    FeTTsack Hall Of Fame
    Registriert seit
    27.06.2012
    Beiträge
    188
    Beitragswertungen
    26 Beitragspunkte
    hiho

    poste mal bitte den gesamten Inhalt deiner html
    und die gesamte
    function user_regist($name, $mail, $nachname, $vorname, $mrgnr, $pass) {
    aus deiner user.php

    wenn es geht noch die namen der Felder in der ic1_user (aus deiner DB) die du dafür ergänzt hast lächeln

    dann kann man dir das schnell anpassen.

    lg fetti


    Zuletzt modifiziert von FeTTsack am 06.07.2015 - 17:29:46
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo FeTTsack,

    alsiop hier mal die "regist.html"
    <!-- REGELN -->
    <form action="index.php?user-regist-2" method="POST">
    
        {_lang_attentionplease}:
        <br />
        {regeln}
    
    
        <br /><br /><input type="submit" value="{_lang_readandok}" name="Yes">
    
    </form>
    {EXPLODE}
    {FEHLER}
    <form action="index.php?user-regist-2" method="POST">
        <input type="hidden" value="Gelesen und einverstanden" name="checked">
        <table width="100%" border="0" cellspacing="1" cellpadding="3" class="border">
            <tr class="Chead">
                <th colspan="2"><b>{_lang_REGISTER}</b></th>
            </tr>
            <tr>
                <td colspan="2" class="Cdark">{FEHLER}</td>
            </tr>
            <tr>
                <td class="Cmite" width="60">{_lang_nickname}</td>
                <td class="Cnorm"><input type="text" name="nutz" value="{name}" maxlength="15"></td>
            </tr>
            <tr>
                <td class="Cmite" width="60">{_lang_firstname}</td>
                <td class="Cnorm"><input type="text" name="firstname" value="{firstname}" maxlength="30"></td>
            </tr>
            <tr>
                <td class="Cmite" width="60">{_lang_familyname}</td>
                <td class="Cnorm"><input type="text" name="familyname" value="{familyname}" maxlength="30"></td>
            </tr>
            <tr>
                <td class="Cmite" width="60">{_lang_mitnr}</td>
                <td class="Cnorm"><input type="text" name="mitnr" value="{mitnr}" maxlength="30"></td>
            </tr>
            <tr>
                <td class="Cmite">{_lang_mail}</td>
                <td class="Cnorm"><input type="text" maxlength="100" value="{email}" name="email"></td>
            </tr>
            <tr>
                <td class="Cmite">{_lang_mail}</td>
                <td class="Cnorm"><input type="text" maxlength="100" value="{email}" name="email_wdh"></td>
            </tr>
            {EXPLODE}
            <tr>
                <td class="Cmite">{_lang_password}</td>
                <td class="Cnorm"><input type="password" name="pass"></td>
            </tr>{EXPLODE}
            <tr>
                <td class="Cmite">Antispam</td>
                <td class="Cnorm">{antispam}</td>
            </tr>
            <tr class="Cdark">
                <td></td>
                <td><input type="submit" name="register" value="{_lang_register}"></td>
            </tr>
        </table>
    </form>
    {EXPLODE}
    {_lang_hello} {NAME}<br>
    
    {_lang_yourregistrationwassuccessful}!<br><br>
    {_lang_amailhasbeensenttoyouwithmailandpass}!<br><br>
    {_lang_afteryoureceivedthemail} <a href="index.php?user-2">{_lang_login2}</a>

    Felder in der Datenbank user
     	2 	mitnr 	int(4) 		UNSIGNED ZEROFILL 	Nein 	kein(e) 		Bearbeiten Bearbeiten 	Löschen Löschen 	Zeige nur unterschiedliche Werte Zeige nur unterschiedliche Werte 	Weitere Aktionen anzeigen Mehr
    	3 	name 	varchar(50) 	latin1_swedish_ci 		Nein 	kein(e) 		Bearbeiten Bearbeiten 	Löschen Löschen 	Zeige nur unterschiedliche Werte Zeige nur unterschiedliche Werte 	Weitere Aktionen anzeigen Mehr
    	4 	familyname 	varchar(50) 	latin1_swedish_ci 		Nein 	kein(e) 		Bearbeiten Bearbeiten 	Löschen Löschen 	Zeige nur unterschiedliche Werte Zeige nur unterschiedliche Werte 	Weitere Aktionen anzeigen Mehr

    und hier due "user.php"
    <?php
    // Copyright by: Manuel
    // Support: www.ilch.de
    defined ('main') or die ('no direct access');
    defined ('admin') or die ('only admin access');
    
    function user_get_group_list ($uid) {
        $l = 'Mitglied in Gruppen:<br />';
        $erg = db_query("SELECT prefix_groups.name FROM prefix_groupusers LEFT JOIN prefix_groups ON prefix_groups.id = prefix_groupusers.gid WHERE prefix_groupusers.uid = " . $uid);
        while ($r = db_fetch_assoc($erg)) {
            $l .= '- ' . $r['name'] . '<br />';
        }
        return ($l);
    }
    
    function user_get_all_mod_list () {
        $l = '';
        $erg = db_query("SELECT DISTINCT name FROM prefix_modules WHERE fright = 1 ORDER BY prefix_modules.name");
        while ($r = db_fetch_assoc($erg)) {
            $x = $r['name'];
            $l .= '<th style="font-size: 9px; font-weight: normal;" title="' . $r['name'] . '" valign="bottom">' . $x . '</th>';
        }
        return ($l);
    }
    
    function user_get_mod_change_list ($uid) {
        $l = '';
        $erg = db_query("SELECT prefix_modules.id, uid FROM prefix_modules LEFT JOIN prefix_modulerights ON prefix_modulerights.mid = prefix_modules.id AND prefix_modulerights.uid = " . $uid . " WHERE fright = 1 ORDER BY prefix_modules.name");
        while ($r = db_fetch_assoc($erg)) {
            if ($r['uid'] == '') {
                $c = '';
            } else {
                $c = ' checked';
            }
            $l .= '<td align="center"><input onclick="changeModulRecht(' . $r['id'] . ',' . $uid . ')" type="checkbox" id="MN' . $r['id'] . '-' . $uid . '" name="MN' . $r['id'] . '-' . $uid . '" ' . $c . ' /></td>';
        }
        return ($l);
    }
    
    function user_get_mod_list ($uid) {
        $l = 'Modulrechte:<br />';
        $erg = db_query("SELECT DISTINCT module FROM prefix_modulerights WHERE uid = " . $uid);
        while ($r = db_fetch_assoc($erg)) {
            $l .= '- ' . $r['module'] . '<br />';
        }
        return ($l);
    }
    
    function getfl($gid) {
        $liste = '';
        $erg = db_query("SELECT view,name,reply,start,mods FROM prefix_forums WHERE view = " . $gid . " OR reply = " . $gid . " OR start = " . $gid . " OR mods = " . $gid);
        while ($row = db_fetch_assoc($erg)) {
            $v = ($row['view'] == $gid ? 'sehen/lesen,' : '');
            $r = ($row['reply'] == $gid ? 'antworten,' : '');
            $s = ($row['start'] == $gid ? 'Themen starten,' : '');
            $m = ($row['mods'] == $gid ? 'Moderieren,' : '');
            $liste .= $row['name'] . '<span class="smalfont">(' . $v . $r . $s . $m . ')</span>&nbsp;';
        }
        return($liste);
    }
    
    if (isset($_POST['action'])) {
    	$design = new design ('Admins Area', 'Admins Area', 0);
    	$design->header();
    	$wdtext = 'Es ist ein Fehler aufgetreten.';
    	if (chk_antispam('adminuser_action', true) and isset($_POST['uid'])) {
    		$uid = escape($_POST['uid'], 'integer');
    		switch($_POST['action']){
    			// einen user komplett loeschen
    			case 'deleteUser':
    				$name = get_n($uid);
    				if ($uid != 1 and !empty($name)) {
    					user_remove($uid);
    					$wdtext = 'Der User ' . $name . ' wurde erfolgreich gel&ouml;scht.';
    				}
    				break;
    			// das recht eines users aendern
    			case 'changeRight' :
    				$altes_recht = db_result(db_query("SELECT recht FROM prefix_user WHERE id = " . $uid), 0);
    				$neues_recht = escape($_POST['newright'], 'integer');
    				if (($neues_recht > $_SESSION['authright'] AND $altes_recht > $_SESSION['authright']) OR ($_SESSION['authid'] == 1 AND $uid != 1)) {
    					$q = "UPDATE prefix_user SET recht = " . $neues_recht . " WHERE id = " . $uid;
    					db_query($q);
    				}
    				$wdtext = false;
    			break;
    			// modulrechte fuer einen user aendern
    			case 'changeModulRight' :
    				$modul = escape($_POST['modul'], 'integer');
    				$aktion = $_POST['giveremove'];
    				if ($aktion == 'give' AND 0 == db_result(db_query("SELECT COUNT(*) FROM prefix_modulerights WHERE mid = '" . $modul . "' AND uid = " . $uid), 0)) {
    					db_query("INSERT INTO prefix_modulerights (mid,uid) VALUES ('" . $modul . "'," . $uid . ")");
    				} elseif ($aktion == 'remove' AND 1 == db_result(db_query("SELECT COUNT(*) FROM prefix_modulerights WHERE mid = '" . $modul . "' AND uid = " . $uid), 0)) {
    					db_query("DELETE FROM prefix_modulerights WHERE mid = '" . $modul . "' AND uid = " . $uid);
    				}
    				$wdtext = false;
    			break;
    		}
    	}
    	if ($wdtext === false) {
    		$antispam = get_antispam('adminuser_action', 0, true);
    		?><script type="text/javascript"><!--
    		    function updateParent() { parent.setNewAntispam(document.getElementById('tmp').childNodes[0]);}
    		    window.onload = function() { updateParent(); };
    		    //--></script>
    		    <div id="tmp"><?php echo $antispam; ?></div>
    		<?php
    		exit;
    	}
    	wd('admin.php?' . $menu->get_complete(), $wdtext, 5);
    	$design->footer(1);
    }
    
    $um = $menu->get(1);
    switch ($um) {
        default :
            $design = new design ('Admins Area', 'Admins Area', 2);
            $design->header();
            $q = '';
            if (isset($_REQUEST['q'])) {
                $q = escape($_REQUEST['q'], 'string');
            }
            $tpl = new tpl ('user/user', 1);
            $tpl->set('modlall', user_get_all_mod_list());
            $tpl->set('anzmods', db_result(db_query("SELECT COUNT(*) FROM prefix_modules WHERE fright = 1"), 0));
            $tpl->set('action_antispam', get_antispam('adminuser_action', 0, true));
            $tpl->set_out('q', unescape($q), 0);
    
            $q = str_replace('*', '%', $q);
            if (strpos($q, '%') === false) {
                $q = $q . '%';
            }
    
            $limit = 15; // Limit
            $page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1);
            $MPL = db_make_sites ($page , "WHERE name LIKE '" . $q . "'" , $limit , '?user' , 'user');
            $anfang = ($page - 1) * $limit;
            $class = '';
            $q = "SELECT name,recht,id FROM `prefix_user` WHERE name LIKE '" . $q . "' ORDER by recht,posts DESC LIMIT " . $anfang . "," . $limit;
            $erg = db_query($q);
            while ($row = db_fetch_object($erg)) {
                if ($class == 'Cmite') {
                    $class = 'Cnorm';
                } else {
                    $class = 'Cmite';
                }
                $ar = array ('name' => $row->name,
                    'class' => $class,
                    'id' => $row->id,
                    'grouplist' => user_get_group_list($row->id),
                    'recht' => dblistee($row->recht, "SELECT id,name FROM prefix_grundrechte ORDER BY id ASC"),
                    'modslist' => user_get_mod_change_list($row->id),
                    );
    
                $tpl->set_ar_out($ar, 1);
            }
            $tpl->set_out('MPL', $MPL, 2);
            $design->footer();
            break;
    
        // gruppen zugehoerigkeiten eines users aendern
        case 'gruppen' :
            $uid = $menu->get(2);
            if (isset($_POST['usergroups'])) {
                $erg = db_query("SELECT id FROM prefix_groups");
                while ($row = db_fetch_assoc($erg)) {
                    $ck = db_count_query("SELECT COUNT(uid) FROM prefix_groupusers WHERE uid = " . $uid . " AND gid = " . $row['id']);
                    if ($ck == 0 AND isset ($_POST['grprhave'][$row['id']][$uid])) {
                        db_query("INSERT INTO prefix_groupusers (uid,gid,fid) VALUES ( " . $uid . ", " . $row['id'] . ", 3 )");
                    } elseif ($ck == 1 AND !isset ($_POST['grprhave'][$row['id']][$uid])) {
                        db_query("DELETE FROM prefix_groupusers WHERE uid = " . $uid . " AND gid = " . $row['id']);
                    }
                }
            }
    
            $user_name = db_result(db_query("SELECT name FROM prefix_user WHERE id = " . $uid), 0);
            $tpl = new tpl ('user/gruppen', 1);
            $tpl->set_ar_out(array('username' => $user_name, 'userid' => $uid), 0);
            $class = 'Cnorm';
            $erg = db_query("SELECT name,id FROM prefix_groups");
            while ($row = db_fetch_assoc($erg)) {
                $ck = db_count_query("SELECT COUNT(uid) FROM prefix_groupusers WHERE uid = " . $uid . " AND gid = " . $row['id']);
                $row['ck'] = ($ck == 0 ? '' : 'checked');
                $class = ($class == 'Cnorm' ? 'Cmite' : 'Cnorm');
                $row['class'] = $class;
                $tpl->set_ar_out($row, 1);
            }
            $tpl->out(2);
            break;
    
        // details eines users anzeigen
        case 1 :
            $design = new design ('Admins Area', 'Admins Area', 2);
            $design->header();
            if (isset ($_REQUEST['uID'])) {
                $uid = $_REQUEST['uID'];
            } else {
                $uid = $menu->get(2);
            }
            $erg = db_query("SELECT name,email,id,recht,wohnort,homepage,aim,msn,icq,yahoo,status,staat,gebdatum,sig,opt_pm,opt_pm_popup,opt_mail,geschlecht,spezrank,avatar FROM prefix_user WHERE id = '" . $uid . "'");
            if (db_num_rows($erg) == 0) {
                die ('Fehler: Username nicht gefunden <a href="?user">zur&uuml;ck</a>');
            } else {
                $row = db_fetch_assoc($erg);
    
                $tpl = new tpl ('user/details', 1);
                $row['recht'] = dbliste ($row['recht'] , $tpl, 'recht', "SELECT id,name FROM prefix_grundrechte ORDER BY id ASC");
                $row['staat'] = '<option></option>' . arliste ($row['staat'] , get_nationality_array() , $tpl , 'staat');
                $row['spezrank'] = '<option></option>' . dbliste ($row['spezrank'], $tpl, 'spezrank', "SELECT id, bez FROM prefix_ranks WHERE spez = 1");
    
                $row['geschlecht0'] = ($row['geschlecht'] < 1 ? 'checked' : '');
                $row['geschlecht1'] = ($row['geschlecht'] == 1 ? 'checked' : '');
                $row['geschlecht2'] = ($row['geschlecht'] == 2 ? 'checked' : '');
                if ($row['status'] == 1) {
                    $row['status1'] = 'checked';
                    $row['status0'] = '';
                } else {
                    $row['status1'] = '';
                    $row['status0'] = 'checked';
                }
                if ($row['opt_mail'] == 1) {
                    $row['opt_mail1'] = 'checked';
                    $row['opt_mail0'] = '';
                } else {
                    $row['opt_mail1'] = '';
                    $row['opt_mail0'] = 'checked';
                }
                if ($row['opt_pm'] == 1) {
                    $row['opt_pm1'] = 'checked';
                    $row['opt_pm0'] = '';
                } else {
                    $row['opt_pm1'] = '';
                    $row['opt_pm0'] = 'checked';
                }
                if ($row['opt_pm_popup'] == 1) {
                    $row['opt_pm_popup1'] = 'checked';
                    $row['opt_pm_popup0'] = '';
                } else {
                    $row['opt_pm_popup1'] = '';
                    $row['opt_pm_popup0'] = 'checked';
                }
                if (@file_exists($row['avatar'])) {
                    $row['avatar'] = '<img src="' . $row['avatar'] . '" border="0" /><br />' ;
                }else {
                    $row['avatar'] = '';
                }
                $row['antispam'] = get_antispam('adminuser', 0, true);
                $tpl->set_ar_out ($row, 0);
    
                profilefields_change ($row['id']);
    
                $tpl->out(1);
            }
            $design->footer();
            break;
        // details des users aendern
        case 2 :
            $design = new design ('Admins Area', 'Admins Area', 2);
            $design->header();
            $changeok = true;
            $uid = escape($_POST['uID'], 'integer');
    
            $altes_recht = db_result(db_query("SELECT recht FROM prefix_user WHERE id = " . $uid), 0);
            $neues_recht = escape($_POST['urecht'], 'integer');
            if (($neues_recht <= $_SESSION['authright'] OR $altes_recht <= $_SESSION['authright']) AND $_SESSION['authid'] > 1) {
                $changeok = false;
            }
    
            if ($changeok and chk_antispam('adminuser', true)) {
                if (isset($_POST['userdel'])) {
                    user_remove($uid);
                    wd ('?user', 'User wurde erfolgreich gel&ouml;scht');
                } else {
                    $abf = "SELECT * FROM prefix_user WHERE id = '" . $uid . "'";
                    $erg = db_query($abf);
                    $row = db_fetch_object($erg);
    
                    if (isset($_POST['passw'])) {
                        $newPass = genkey (8);
                        $newPassHash = user_pw_crypt($newPass);
                        icmail ($row->email , 'neues Password' , "Hallo\n\nDein Password wurde soeben von einem Administrator gäendert es ist nun:\n\n$newPass\n\nGruß der Administrator");
                        db_query('UPDATE `prefix_user` SET pass = "' . $newPassHash . '" WHERE id = "' . escape($_POST['uID'], 'integer') . '"');
                    }
                    // avatar speichern START
                    $avatar_sql_update = '';
                    if (!empty ($_FILES['avatarfile']['name'])) {
                        $file_tmpe = $_FILES['avatarfile']['tmp_name'];
                        $rile_type = ic_mime_type ($_FILES['avatarfile']['tmp_name']);
                        $file_type = $_FILES['avatarfile']['type'];
                        $file_size = $_FILES['avatarfile']['size'];
                        $fmsg = $lang['avatarisnopicture'];
                        $size = @getimagesize ($file_tmpe);
                        $endar = array (1 => 'gif', 2 => 'jpg', 3 => 'png');
                        if (($size[2] == 1 OR $size[2] == 2 OR $size[2] == 3) AND $size[0] > 10 AND $size[1] > 10 AND substr ($file_type , 0 , 6) == 'image/' AND substr ($rile_type , 0 , 6) == 'image/') {
                            $endung = $endar[$size[2]];
                            $breite = $size[0];
                            $hoehe = $size[1];
                            $neuer_name = 'include/images/avatars/' . $uid . '.' . $endung;
                            @unlink (db_result(db_query("SELECT avatar FROM prefix_user WHERE id = " . $uid), 0));
                            move_uploaded_file ($file_tmpe , $neuer_name);
                            @chmod($neuer_name, 0777);
                            $avatar_sql_update = ', avatar = "' . $neuer_name . '"';
                            $fmsg = $lang['pictureuploaded'];
                        }
                    } elseif (isset($_POST['avatardel'])) {
                        $fmsg = $lang['picturedelete'];
                        @unlink (db_result(db_query("SELECT avatar FROM prefix_user WHERE id = " . $uid), 0));
                        $avatar_sql_update = ', avatar = ""';
                    }
                    // avatar speichern ENDE
                    profilefields_change_save (escape($_POST['uID'], 'integer'));
                    $usaName1 = escape($_POST['usaName1'], 'string');
                    $email = escape($_POST['email'], 'string');
                    $homepage = escape($_POST['homepage'], 'string');
                    $wohnort = escape($_POST['wohnort'], 'string');
                    $icq = escape($_POST['icq'], 'string');
                    $msn = escape($_POST['msn'], 'string');
                    $yahoo = escape($_POST['yahoo'], 'string');
                    $aim = escape($_POST['aim'], 'string');
                    $staat = escape($_POST['staat'], 'string');
                    $spezrank = escape($_POST['spezrank'], 'integer');
                    $geschlecht = escape($_POST['geschlecht'], 'integer');
                    $status = escape($_POST['status'], 'integer');
                    $opt_mail = escape($_POST['opt_mail'], 'integer');
                    $opt_pm = escape($_POST['opt_pm'], 'integer');
                    $opt_pm_popup = escape($_POST['opt_pm_popup'], 'integer');
                    $gebdatum = escape($_POST['gebdatum'], 'string');
                    $sig = escape($_POST['sig'], 'string');
                    // Name im Forum ändern
                    if ($_POST['forumname'] == 'on') {
                        $oldname = db_count_query("SELECT name FROM `prefix_user` WHERE id =" . $uid);
                        if ($oldname != $usaName1) {
                            db_query("UPDATE `prefix_posts` SET erst = '$usaName1' WHERE erstid = " . $uid);
                            db_query("UPDATE `prefix_topics` SET erst = '$usaName1' WHERE erst = '$oldname'");
                        }
                    }
                    db_query('UPDATE prefix_user
    			  SET
    					name  = "' . $usaName1 . '",
    					recht = "' . $neues_recht . '",
    					email = "' . $email . '",
              homepage = "' . $homepage . '",
              wohnort = "' . $wohnort . '",
              icq = "' . $icq . '",
              msn = "' . $msn . '",
              yahoo = "' . $yahoo . '",
              aim = "' . $aim . '",
              staat = "' . $staat . '",
              spezrank = "' . $spezrank . '",
              geschlecht = "' . $geschlecht . '",
              status = "' . $status . '",
              opt_mail = "' . $opt_mail . '",
              opt_pm = "' . $opt_pm . '",
              opt_pm_popup = "' . $opt_pm_popup . '",
              gebdatum = "' . $gebdatum . '",
              sig = "' . $sig . '"
              ' . $avatar_sql_update . '
    				WHERE id = "' . $uid . '"');
                }
            }
            wd('admin.php?user-1-' . $uid, 'Das Profil wurde erfolgreich geaendert', 2);
            $design->footer();
            break;
        // mal kurz nen neuen user anlegen
        case 'createNewUser' :
            $msg = '';
            if (!empty($_POST['name']) AND !empty($_POST['pass']) AND !empty($_POST['email']) and chk_antispam('adminuser_create', true)) {
                $_POST['name'] = escape($_POST['name'], 'string');
                $_POST['recht'] = escape($_POST['recht'], 'integer');
                $_POST['email'] = escape($_POST['email'], 'string');
                $erg = db_query("SELECT id FROM prefix_user WHERE name = BINARY '" . $_POST['name'] . "'");
                if (db_num_rows($erg) > 0) {
                    $msg = 'Der Name ist leider schon vorhanden!';
                } else {
                    $new_pass = $_POST['pass'];
                    $passwordHash = user_pw_crypt($new_pass);;
                    db_query("INSERT INTO prefix_user (name,pass,recht,regist,llogin,email)
    		    VALUES('" . $_POST['name'] . "','" . $passwordHash . "'," . $_POST['recht'] . ",'" . time() . "','" . time() . "','" . $_POST['email'] . "')");
                    $userid = db_last_id();
                    db_query("INSERT INTO prefix_userfields (uid,fid,val) VALUES (" . $userid . ",2,'1')");
                    db_query("INSERT INTO prefix_userfields (uid,fid,val) VALUES (" . $userid . ",3,'1')");
    
                    if (isset($_POST['info'])) {
                        $page = $_SERVER["HTTP_HOST"] . $_SERVER["SCRIPT_NAME"];
                        $page = str_replace('admin.php', 'index.php', $page);
                        $tpl = new tpl ('user/new_user_email', 1);
                        $tpl->set('name', $_POST['name']);
                        $tpl->set('pass', $_POST['pass']);
                        $tpl->set('page', $page);
                        $txt = $tpl->get(0);
                        unset($tpl);
                        icmail ($_POST['email'], 'Admin hat dich angelegt', $txt);
                    }
                    $msg = 'Benutzer angelegt <a href="javascript:closeThisWindow()">Fenster schließen</a>';
                }
            }
            $pass = '';
            $email = '';
            $recht = '';
            if (isset($_POST['pass'])) {
                $pass = $_POST['pass'];
            }
            if (isset($_POST['email'])) {
                $email = $_POST['email'];
            }
            if (isset($_POST['recht'])) {
                $recht = $_POST['recht'];
            } else {
                $recht = '-1';
            }
            $tpl = new tpl ('user/new_user', 1);
            $tpl->set('msg', $msg);
            $tpl->set('pass', $pass);
            $tpl->set('email', $email);
            $tpl->set('recht', dblistee($recht, "SELECT id,name FROM prefix_grundrechte ORDER BY id ASC"));
        	$tpl->set('antispam', get_antispam('adminuser_create', 0, true));
            $tpl->out(0);
            break;
    }
    
    ?>

    sind die Angaben ausreichend?

    MfG heinz2
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    FeTTsack Hall Of Fame
    Registriert seit
    27.06.2012
    Beiträge
    188
    Beitragswertungen
    26 Beitragspunkte
    sry.
    hätte mich besser ausdrücken sollen.

    brauch den inhalt der funktion
    function user_regist($name, $mail, $nachname, $vorname, $mrgnr, $pass) {

    aus der include/includes/func/user.php

    weil sieht so aus, als ob du die verändert hast lächeln
    fängt ca. in Zeile 308 an lächeln
    ----

    heut keine zeit.
    morgen mach ich dir eine Lösung fertig lächeln



    lg fetti


    Zuletzt modifiziert von FeTTsack am 06.07.2015 - 19:57:54
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo FeTTsack,
    hier ist Zeile 307 bis 364 au der "include/includes/func/user.php"
    function user_regist ($name, $firstname, $familyname, $mitnr, $mail, $pass) {
      global $allgAr, $lang;
    
      $erg = db_query("SELECT id FROM prefix_user WHERE name = BINARY '".$name."'");
      if (db_num_rows($erg) > 0) {
        return (false);
      }
    
      if ( $allgAr['forum_regist_user_pass'] == 0 ) {
            $new_pass = genkey(8);
      } else {
          $new_pass = $pass;
        }
    
      $passwordHash = user_pw_crypt($new_pass);
        $confirmlinktext = '';
    
        # confirm insert in confirm tb not confirm insert in user tb
        if ( $allgAr['forum_regist_confirm_link'] == 1 ) {
            # confirm link + text ... bit of shit put it in languages file
          $page = $_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"];
            $id = md5 (uniqid (rand()));
            $confirmlinktext = "\n".$lang['registconfirm']."\n\n".sprintf($lang['registconfirmlink'], $page, $id );
            db_query("INSERT INTO prefix_usercheck (`check`,name,firstname,familyname,mitnr,email,pass,datime,ak)
            VALUES ('".$id."','".$name."','".$firstname."','".$familyname."','".$mitnr."','".$mail."','".$passwordHash."',NOW(),1)");
      } else {
          db_query("INSERT INTO prefix_user (name,firstname,familyname,mitnr,pass,recht,regist,llogin,email,status,opt_mail,opt_pm)
            VALUES('".$name."','".$firstname."','".$familyname."','".$mitnr."','".$passwordHash."',-1,'".time()."','".time()."','".$mail."',1,1,1)");
            $userid = db_last_id();
        }
      $regmail = sprintf($lang['registemail'],$name, $confirmlinktext, $name, $new_pass);
    
        icmail($mail,'Anmeldung',$regmail); # email an user
    
      return (true);
    }
    
    function user_remove($uid){
        $row = @db_fetch_object(db_query("SELECT recht,avatar FROM prefix_user WHERE id = ".$uid));
        if ( $uid <> 1 AND ($_SESSION['authid'] == $uid OR $_SESSION['authid'] == 1 OR (is_coadmin() AND $_SESSION['authright'] < $row->recht))) {
            db_query("DELETE FROM prefix_user WHERE id = ".$uid);
            db_query("DELETE FROM prefix_userfields WHERE uid = ".$uid);
            db_query("DELETE FROM prefix_groupusers WHERE uid = ".$uid);
            db_query("DELETE FROM prefix_modulerights WHERE uid = ".$uid);
            db_query("DELETE FROM prefix_pm WHERE eid = ".$uid);
            db_query("DELETE FROM prefix_online WHERE uid = ".$uid);
            //Usergallery entfernen
            $sql = db_query("SELECT id,endung FROM prefix_usergallery WHERE uid = ".$uid);
            while( $r = db_fetch_object($sql) ){
                @unlink("include/images/usergallery/img_$r->id.$r->endung");
                @unlink("include/images/usergallery/img_thumb_$r->id.$r->endung");
            }
            db_query("DELETE FROM prefix_usergallery WHERE uid = ".$uid);
            //Avatar
            @unlink($row->avatar);
        }
    }


    Die Dateien liegen alle noch bei mir auf meinem localserver.

    MfG heinz2


    Zuletzt modifiziert von heinz2 am 06.07.2015 - 23:08:57
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Rock@wulf Hall Of Fame
    Registriert seit
    03.06.2004
    Beiträge
    3.282
    Beitragswertungen
    239 Beitragspunkte
    ZitatZitat geschrieben von heinz2
    <input type="text" maxlength="100" value="{email}" name="email_wdh">


    des eggt nicht obacht wird mit dem selben value als das erste überschrieben

    ZitatZitat

    $checkNotEmpty = array(
    'name' => 'Nickname',
    'email' => 'E-Mail',
    'firstname' => 'Vorname',
    'familyname' => 'Nachname',
    'mitnr' => 'Mitgliedsnummer'
    );


    Hier fehlt das email_wdh

    Dann fehlt
     $ch_name = false;
            $xname = escape_nickname($name);
            if (!empty($name) AND $xname == $name AND 0 == db_result(db_query("SELECT COUNT(*) FROM prefix_user WHERE name = BINARY '" . $name . "'"), 0)) {
                $ch_name = true;
            }


    dieses umgebaut für email Prüfung ?

    Was nützt son Feld wenn man es nicht prüft...

    USW schau da nochmal drüber da fehlt ein weng viel
    Meine Postings repräsentieren meine Meinung wenn nicht anders gekennzeichnet.
    MFG Rock@wulf
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Ahrtas Moderator
    Registriert seit
    17.12.2007
    Beiträge
    2.368
    Beitragswertungen
    210 Beitragspunkte
    @heinz2
    Oder du machst einfach mal ein Thema in Anfrage/Angebote auf und lässt es dir erstellen für ein "Taschengeld". zwinker
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    FeTTsack Hall Of Fame
    Registriert seit
    27.06.2012
    Beiträge
    188
    Beitragswertungen
    26 Beitragspunkte
    schau mal ob das so geht.
    deine html sieht ok aus lächeln


    regist.php:
    <?php
    
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined('main') or die('no direct access');
    
    if (!isset($_GET['step'])) {
        $_GET['step'] = 1;
    }
    
    if ($allgAr['forum_regist'] == 0) {
        # user duerfen sich nicht registrieren.
        $title = $allgAr['title'] . ' :: Users :: Keine registrierung m&ouml;glich';
        $hmenu = $extented_forum_menu . '<a class="smalfont" href="?user">User</a><b> &raquo; </b>Keine Registrierung m&ouml;glich' . $extented_forum_menu_sufix;
        $design = new design($title, $hmenu, 1);
        $design->header();
        $tpl = new tpl('user/login');
        echo '<b> Der Administrator hat festgelegt das man sich nicht registrieren kann </b>';
        $tpl->set_out('WDLINK', '?' . $allgAr['smodul'], 0);
        $design->footer();
        exit();
    }
    
    switch ($menu->get(2)) {
        default :
            $title = $allgAr['title'] . ' :: Users :: Registrieren :: Step 1 von 3';
            $hmenu = $extented_forum_menu . '<a class="smalfont" href="?user">User</a><b> &raquo; </b><a class="smalfont" href="?user-regist">Registrieren</a><b> &raquo; </b>Step 1 von 3' . $extented_forum_menu_sufix;
            $design = new design($title, $hmenu, 1);
            $design->header();
            $tpl = new tpl('user/regist');
            $tpl->set_out('regeln', bbcode($allgAr['allg_regeln']), 0);
            $design->footer();
            break;
    
        case 2 :
            $name = '';
            $email = '';
            $firstname = '';
            $familyname = '';
            $mitnr = '';
    		$email_wdh = '';
            if (!empty($_POST['nutz'])) {
                $name = escape($_POST['nutz'], 'string');
            }
            if (!empty($_POST['email'])) {
                $email = escape($_POST['email'], 'string');
            }
            if (!empty($_POST['email_wdh'])) {
    			$email_wdh = escape($_POST['email_wdh'],'string');
            }
            if (!empty($_POST['firstname'])) {
                $firstname = escape($_POST['firstname'], 'string');
            }
            if (!empty($_POST['familyname'])) {
                $familyname = escape($_POST['familyname'], 'string');
            }
            if (!empty($_POST['mitnr'])) {
                $mitnr = escape($_POST['mitnr'], 'integer');
            }
    
            $checkNotEmpty = array(
                'name'  => 'Nickname',
                'email' => 'E-Mail',
                'firstname' => 'Vorname',
                'familyname' => 'Nachname',
                'mitnr' => 'Mitgliedsnummer',
    			'email_wdh' => 'E-Mail Wiederholen'
            );
    
            $emptyErrorMsg = '';
            foreach ($checkNotEmpty as $field => $label) {
                if (empty($$field)) {
                    $emptyErrorMsg .= '• <b>' . $label . '</b> ist ein Pflichtfeld!' . PHP_EOL;
                }
            }
    
            $ch_name = false;
    		$mail_vergleich = false;
            $xname = escape_nickname($name);
            if (!empty($name) AND $xname == $name AND 0 == db_result(db_query("SELECT COUNT(*) FROM prefix_user WHERE name = BINARY '" . $name . "'"), 0)) {
                $ch_name = true;
            }
    		if ($email_wdh == $email){
    			$mail_vergleich = true;
    		}
    
            $chkAntispam = chk_antispam('regist');
            if (!empty($emptyErrorMsg) OR $name != $xname OR $ch_name == false OR !$chkAntispam OR $mail_vergleich == false) {
                $title = $allgAr['title'] . ' :: Users :: Registrieren :: Step 2 von 3';
                $hmenu = $extented_forum_menu . '<a class="smalfont" href="?user">User</a><b> » </b><a class="smalfont" href="?user-regist">Registrieren</a><b> » </b>Step 2 von 3' . $extented_forum_menu_sufix;
                $design = new design($title, $hmenu, 1);
                $design->header();
                if (isset($_POST['register'])) {
                    if (!empty($emptyErrorMsg)) {
                        $fehler = $lang['entereddataincomplete'] . '<br/>' . $emptyErrorMsg;
                    } elseif ($name != $xname) {
                        $fehler = $lang['wrongnickname'];
                    } elseif ($ch_name == false) {
                        $fehler = $lang['namealreadyinuse'];
                    } elseif (!$chkAntispam) {
                        $fehler = $lang['wrongcaptchaentered']; //antispamtxt
                    }elseif($mail_vergleich == false){
    					$fehler = $lang['maildoesntagree']; //-- hierfür einen eintrag in der language de.php usw. machen
    				}
                } else {
                    $fehler = '';
                }
                $tpl = new tpl('user/regist');
                $tpl->set('name', $name);
                $tpl->set('email', $email);
                $tpl->set('firstname', $firstname);
                $tpl->set('familyname', $familyname);
                $tpl->set('mitnr', $mitnr);
    			$tpl->set('email_wdh', $email_wdh);
                $tpl->set('antispam', get_antispam('regist', 0));
                $tpl->set_out('FEHLER', $fehler, 1);
                if ($allgAr['forum_regist_user_pass'] == 1) {
                    $tpl->out(2);
                }
                $tpl->out(3);
            } else {
                $pass = genkey(8);
                if (!empty($_POST['pass'])) {
                    $pass = escape($_POST['pass'], 'string');
                }
                user_regist($name, $firstname, $familyname, $mitnr, $email, $pass);
    
                $tpl = new tpl('user/regist');
                $title = $allgAr['title'] . ' :: Users :: Registrieren :: Step 3 von 3';
                $hmenu = $extented_forum_menu . '<a class="smalfont" href="?user">User</a><b> » </b><a class="smalfont" href="?user-regist">Registrieren</a><b> » </b>Step 3 von 3' . $extented_forum_menu_sufix;
                $design = new design($title, $hmenu, 1);
                $design->header();
                $tpl->set_out('NAME', $name, 4);
            }
            $design->footer();
            break;
    }
    ?>


    user_regist:
    <?php
    function user_regist ($name, $firstname, $familyname, $mitnr, $mail, $pass) {
      global $allgAr, $lang;
    
      $erg = db_query("SELECT id FROM prefix_user WHERE name = BINARY '".$name."'");
      if (db_num_rows($erg) > 0) {
        return (false);
      }
    
      if ( $allgAr['forum_regist_user_pass'] == 0 ) {
            $new_pass = genkey(8);
      } else {
          $new_pass = $pass;
        }
    
      $passwordHash = user_pw_crypt($new_pass);
        $confirmlinktext = '';
    
        # confirm insert in confirm tb not confirm insert in user tb
        if ( $allgAr['forum_regist_confirm_link'] == 1 ) {
            # confirm link + text ... bit of shit put it in languages file
          $page = $_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"];
            $id = md5 (uniqid (rand()));
            $confirmlinktext = "\n".$lang['registconfirm']."\n\n".sprintf($lang['registconfirmlink'], $page, $id );
            db_query("INSERT INTO prefix_usercheck (`check`,name,firstname,familyname,mitnr,email,pass,datime,ak)
            VALUES ('".$id."','".$name."','".$firstname."','".$familyname."',".$mitnr.",'".$mail."','".$passwordHash."',NOW(),1)");
      } else {
          db_query("INSERT INTO prefix_user (name,firstname,familyname,mitnr,pass,recht,regist,llogin,email,status,opt_mail,opt_pm)
            VALUES('".$name."','".$firstname."','".$familyname."',".$mitnr.",'".$passwordHash."',-1,'".time()."','".time()."','".$mail."',1,1,1)");
            $userid = db_last_id();
        }
      $regmail = sprintf($lang['registemail'],$name, $confirmlinktext, $name, $new_pass);
    
        icmail($mail,'Anmeldung',$regmail); # email an user
    
      return (true);
    }
    ?>


    sollte es nicht klappen.
    bitte bescheid geben was für fehler kommt und was in die DB geschrieben wird ...

    ps.
    deine mitnr prüfst du auf string aber in der Datenbank ist es ein integer feld. Soll die mitnr auch andere zeichen beinhalten als nur zahlen ?

    lg fetti


    Zuletzt modifiziert von FeTTsack am 08.07.2015 - 09:20:02
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo FeTTsack,
    Danke, hat geklappt. Einträge werden eingetragen. Eine Fehlermeldung über ungleiche Mailadressen bekomme ich auch ausgegeben.

    MfG heinz


    Zuletzt modifiziert von heinz2 am 09.07.2015 - 23:45:49
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo fetti,
    Du schriebst
    ZitatZitat
    ps.
    deine mitnr prüfst du auf string aber in der Datenbank ist es ein integer feld. Soll die mitnr auch andere zeichen beinhalten als nur zahlen ?

    Mitgliedsnummern sind nur Zahlen und sollen vorn mit Nullen aufgefüllt werden. Was meinst Du mit der Prüfung?

    MfG heinz2
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    FeTTsack Hall Of Fame
    Registriert seit
    27.06.2012
    Beiträge
    188
    Beitragswertungen
    26 Beitragspunkte
    den part meinte ich
    $mitnr = escape($_POST['mitnr'], 'integer');

    bei dir war halt string da gesteanden.

    lächeln
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo fetti,

    vielen Dank Danke für die Hilfe. So lerne ich immer wieder etwas dazu.

    MfG heinz2
    kann geschlossen werden.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten