ich versuche seit ein paar Tagen es selbst zu schaffen aber es funktioniert nicht. Nun hoffe ich hier Hilfe zu finden.
Es ist eigentlich heutzutage üblich das bei der Registrierung oder bei der Profiländerung geprüft wird ob der Username oder die E-Mail Adresse schon benutzt werden. Leider trifft es bei der 1.1P nur auf dem Namen zu nicht auf die E-Mail Adresse.
Ich möchte es nun endlich nach langer Zeit reparieren bzw. für mich anpassen da ich noch ein Feld den ich für den Game-Server brauche hinzugefügt habe.
So sieht es im Moment aus:
/include/templates/user/regist.htm
<!-- 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} <!--<p style="color:red;">{FEHLER}</p>--> <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" style="color:red;" class="Cdark">{FEHLER}</td> </tr><tr> <td class="Cmite" width="80">{_lang_nickname} *</td> <td class="Cnorm"><input type="text" name="nutz" value="{name}" maxlength="15"><span class="smalfont"><-- Required fields</span></td> </tr><tr> <td class="Cmite">{_lang_mail} *</td> <td class="Cnorm"><input type="text" maxlength="100" value="{email}" name="email"><span class="smalfont"><-- Required fields</span></td> </tr><tr> <td class="Cmite">Playername</td> <td class="Cnorm"><input type="text" maxlength="100" value="" name="playername"><span class="smalfont"><-- protect your unique player name</span></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>
Was funktioniert nun nicht:
1. -> Es sollte nicht möglich sein einen Namen unter 3 Zeichen zu nutzen $fehler = $lang['wrongnickname']; dennoch ist es möglich.
ich weiß das man es hier anpassen muss nur nicht genau was.
/include/includes/func/escape.php
function escape_nickname ($t) { $t = preg_replace("/[^a-zA-Z0-9-\[\]\*\ \+=\._\|]/","",$t); $t = substr($t, 0, 15); $t = escape($t, 'string'); return ($t); }
2. -> Ob E-Mail vorhanden wurde nicht geprüft das konnte ich aber lösen nur E-Mail Format xxxxx@xx.xx sollte auch geprüft werden, man müsste also auch hier eine ähnliche funktion wie für Namen bauen.
3. -> Ich habe ein Feld "Playername" "NICHT PFLICHT FELD" das frei gelassen werden kann hinzugefügt. Aber sollte doch jemand was eingeben soll geprüft werden ob dieser Namen schon benutzt wird. Ich denke weil es leere Zeilen in der MySQL in dieser Spalte gibt kommt immer der Fehler bei mir das dieser Namen schon benutzt wird.
/include/contents/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öglich'; $hmenu = $extented_forum_menu . '<a class="smalfont" href="?user">User</a><b> » </b>Keine Registrierung mö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> » </b><a class="smalfont" href="?user-regist">Registrieren</a><b> » </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 = ''; $playername = ''; if (!empty($_POST['nutz'])) { $name = escape($_POST['nutz'], 'string'); } if (!empty($_POST['email'])) { $email = escape($_POST['email'], 'string'); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailErr = "Invalid email format";} } if (!empty($_POST['playername'])) { $playername = escape($_POST['playername'], '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; } $ch_email = false; $xemail = escape_for_email($email); if (!empty($email) AND $xemail == $email AND 0 == db_result(db_query("SELECT COUNT(*) FROM prefix_user WHERE email = BINARY '" . $email . "'"), 0)) { $ch_email = true; } $ch_playername = false; if (!empty($playername) AND 0 == db_result(db_query("SELECT COUNT(*) FROM prefix_user WHERE playername = BINARY '" . $playername . "'"), 0)) { $ch_playername = true; } $chkAntispam = chk_antispam('regist'); if (empty($name) OR empty($email) OR $name != $xname OR $ch_name == false OR $email != $xemail OR $ch_email == falsel OR $ch_playername == 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($name) OR empty($email)) { //$fehler = $lang['entereddataincomplete']; $fehler = "ERROR: Your entry is not complete!"; } elseif ($name != $xname) { //$fehler = $lang['wrongnickname']; $fehler = "ERROR: Wrong Name format, unauthorized character!"; } elseif ($email != $xemail) { //$fehler = $lang['wrongemail']; $fehler = "Email Format falsch"; } elseif ($ch_name == false) { //$fehler = $lang['namealreadyinuse']; $fehler = "ERROR: The name is already used!"; } elseif ($ch_email == false) { //$fehler = $lang['emailalreadyinuse']; $fehler = "ERROR: The E-Mail Adress is already used!"; } elseif ($ch_playername == false) { //$fehler = $lang['playernamealreadyinuse']; $fehler = "ERROR: The playername is already protected!"; } elseif (!$chkAntispam) { $fehler = $lang['wrongcaptchaentered']; //antispamtxt } } else { $fehler = ''; } $tpl = new tpl('user/regist'); $tpl->set('name', $name); $tpl->set('email', $email); $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, $playername, $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; } ?>
Hoffe das sich einer sich die Mühe macht so viel Text zu lesen und mir helfen kann.
Danke
wor
verwendete ilch Version: 1.1 P
betroffene Homepage: vetus-clan.de