anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Create will nicht so wie ich will :D https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=4949 |
Seite 1 von 1 |
Autor: | MySql [ Sa 11 Jul, 2009 16:36 ] |
Betreff des Beitrags: | Create will nicht so wie ich will :D |
Huhu' ich hab da mal so ein kleines.. was sag ich denn.. großes Problem ![]() Undzwar, hab ich für meinen Server die create.php etwas.. verändert. ![]() Alles geht.. bis auf eine Sache. Und diese da wäre: Ich kann keinen einzigen Charakter erschaffen. ![]() Passwort > Funkt alles. :> Hier mal der code: $this->bbcode_second_pass_code('', '<?php Require_Once 'common.php'; If (function_exists('getserversetting')): $sero = Getserversetting('Delete_Char_Sero',1); $second = Getserversetting('Delete_Char_Second',10); $open = Getserversetting('Delete_Char_Open',45); Else: $sero = Getsetting('expiretrasshacct',1); $second = Getsetting('expirenewacct',10); $open = Getsetting('expireoldacct',45); Endif; Checkban(); If ($_GET['setEmailValidation'] == 'REQUEST_EMAIL'): $sql = 'SELECT login,name,password FROM accounts WHERE emailvalidation="'.$_GET['newValidation'].'" AND emailvalidation!=""'; $result = Db_Query($sql); If (Db_Num_Rows($result) > 0): $setValidation = Db_Fetch_Assoc($result); If (Substr($_GET['newValidation'],0,1) == 'x'): $form = TRUE; If (!Empty($_POST['setPasswordFirst'])): If ($_POST['setPasswordFirst'] != $_POST['setPasswordSecond']): Output('Deine Passwörter stimmen nicht überein!`n'); Else: If (Strlen($_POST['setPasswordFirst']) > 3): Page_Header('Passwort wurde geändert!'); Db_Query('UPDATE accounts SET emailvalidation = "",password=MD5("'.$_POST['setPasswordFirst'].'") WHERE emailvalidation = "'.$_GET['newValidation'].'" AND emailvalidation != ""'); Output('Dein Passwort wurde geändert. Du kannst Dich jetzt einloggen!`n'. '<form action="login.php" method="POST">'. '<input name="name" value="'.$setValidation['login'].'" type="hidden">'. '<input name="password" value="'.$_POST['setPasswordFirst'].'" type="hidden">'. '<input type="submit" id="submit" name="submit" value="Hier klicken, um Dich einzuloggen!">'. '</form>',true); $form = FALSE; Else: Page_Header('Passwort ist zu kurz!'); Output('Dein Passwort ist zu kurz. Es muss mindestens vier Zeichen lang sein!'); Endif; Endif; Endif; If ($form): Page_Header('Neues Passwort setzten!'); Output('<div id="container">'. '<form action="register.php?setEmailValidation=REQUEST_EMAIL&newValidation='.$_GET['newValidation'].'" method="post" class="niceform">'. '<fieldset>'. '<legend>Neues Passwort setzten:</legend>'. '<dl>'. '<dt><label for="setPasswordFirst">Neues Passwort:</label></dt>'. '<dd><input type="password" name="setPasswordFirst" id="setPasswordFirst" maxlength="10" size="32"></dd>'. '</dl>'. '<dl>'. '<dt><label for="setPasswordSecond">Bestätigen:</label></dt>'. '<dd><input type="password" name="setPasswordSecond" id="setPasswordSecond" maxlength="10" size="32"></dd>'. '</dl>'. '</fieldset>'. '<fieldset class="action">'. '<center><input type="submit" name="submit" id="submit" value="Neues Passwort setzten!" /></center>'. '</fieldset>'. '</form>'. '</div>',true); Addnav('','register.php?setEmailValidation=REQUEST_EMAIL&newValidation='.$_GET['newValidation']); Addnav('Aktionen'); Addnav('Startseite','index.php'); Endif; Else: Page_Header('Email Adresse erfolgreich bestätigt!'); db_query('UPDATE accounts SET emailvalidation = "" WHERE emailvalidation="'.$_GET['newValidation'].'" AND emailvalidation != ""'); Output('Deine Email Adresse, wurde bestätigt. Dein Login Name ist '.$setValidation['name'].''); Output('<form action="login.php" method="POST">'. '<input name="name" value="'.$setValidation['login'].'" type="hidden">'. '<input name="password" value="'.$setValidation['password'].'" type="hidden">'. '<input type="submit" class="button" value="Hier klicken, um Dich einzuloggen!">'. '</form>`n`n',true); Addnav('','login.php'); Addnav('Aktionen'); Addnav('Startseite','index.php'); Output('Charaktere, die nie einloggen, werden nach '.$sero.' Tagen gelöscht.`n'); Output('Charaktere, die nie Level zwei erreichen, werden nach '.$second.' Tagen Inaktivität gelöscht.`n'); Output('Charaktere, die Level zwei erreicht haben, werden nach '.$open.' Tagen Inaktivität gelöscht.`n'); Endif; Else: Page_Header('Email Adresse konnte nicht bestätigt werden!'); Output('Deine Email Adresse, konnte nicht bestätigt werden. Möglicherweise wurde sie schon bestätigt. Versuch mal Dich einzuloggen und informiere den Serveradministrator, wenn es nicht klappt!'); Endif; Endif; If ($_GET['setNewPasswordREQUEST'] == 'REQUEST_PASSWORD'): If ($_POST['searchCharakter'] != ''): $sql = 'SELECT login,emailaddress,emailvalidation,password FROM accounts WHERE login="'.$_POST['searchCharakter'].'"'; $result = Db_Query($sql); If (Db_Num_Rows($result) > 0): $sendPasswordValidation = Db_Fetch_Assoc($result); If (Trim($sendPasswordValidation['emailaddress']) != ''): If ($sendPasswordValidation['emailvalidation'] == ''): $sendPasswordValidation['emailvalidation'] = Substr('x'.MD5(date('Y-m-d H:i:s').$sendPasswordValidation['password']),0,32); Db_Query('UPDATE accounts SET emailvalidation = "'.$sendPasswordValidation['emailvalidation'].'" WHERE login = "'.$sendPasswordValidation['login'].'"'); Endif; Mail( $sendPasswordValidation['emailaddress'], "Die Chroniken von Terve - Passwort Anforderung! [Wichtig]", "Hallo ".$sendPasswordValidation['login'].",\n". "soebend wurde uns gemeldet, dass Du Dein Passwort vergessen hast.\n". "Deshalb, bekommst Du diese Email von uns, damit Du Dir ein neues Passwort setzten kannst.\n". "Solltest Du <b>kein</b> neues Passwort beantragt haben, beachte diese Email erst gar nicht. Denn dann ist sie belanglos!\n". "Solltest Du jedoch diese Email beantragt haben, dann klicke bitte auf folgenden Link:\n\n". "http://".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'].'?setEmailValidation=REQUEST_EMAIL&newValidation='.$sendPasswordValidation['emailvalidation']."\n\n". "Wir wünschen dir weiterhin viel Spaß beim spielen.\n\n". "Liebe Grüße,\n". "Dein Adminteam.", "From: ".getsetting('gameadminemail','mysql_anpera@hotmail.de').""); Output('Eine Bestätigungsmail, wurde soebend an deinen Account versendet.'); Else: Page_Header('Keine Email Adresse vorhanden!'); Output('Bei diesem Account, wurde keine Email Adresse hinterlegt. Bitte wende dich an die Serveradministrator!'); Endif; Else: Output('Charaktere verschwunden!'); Output('Dieser Charakter wurde nicht gefunden. Er ist warscheinlich gelöscht worden.'); Endif; Else: Page_Header('Neues Passwort anfordern!'); Output('<div id="container">'. '<form action="register.php?setNewPasswordREQUEST=REQUEST_PASSWORD" method="post" class="niceform">'. '<fieldset>'. '<legend>Neues Passwort beantragen:</legend>'. '<dl>'. '<dt><label for="searchCharakter">Login Name:</label></dt>'. '<dd><input name="searchCharakter" id="searchCharakter" maxlength="10" size="32"></dd>'. '</dl>'. '</fieldset>'. '<fieldset class="action">'. '<center><input type="submit" name="submit" id="submit" value="Passwort per Email zuschicken!" /></center>'. '</fieldset>'. '</form>'. '</div>',true); Addnav('','register.php?setNewPasswordREQUEST=REQUEST_PASSWORD'); Addnav('Aktionen'); Addnav('Startseite','index.php'); Endif; Endif; If ($_GET['createNewCharaktere'] == 'REQUEST_CREATE_CHARAKATERE'): Page_Header('Charakter erstellen..'); If (Getsetting('spaceinname',0) == 0): $shortname = Preg_Replace('([^[:alpha:]_-])','',$_POST['createThisCharaktere']); Else: $shortname = Pref_Replace('([^[:alpha:] _-])','',$_POST['createThisCharaktere']); Endif; If (Soap($shortname) != $shortname): Output('Fehler: Unzulässliger Name. Bitte überdenke deinen Namen nochmal.'); $_GET['registration'] = 'REQUEST_FORM'; Else: $bA = FALSE; If (Getsetting('blockdupeemail',0) == 1 && Getsetting('requireemail',0) == 1): $sql = 'SELECT login FROM accounts WHERE emailaddress = "'.$_POST['createNewEmailAddress'].'"'; $res = Db_Query($sql); If (Db_Num_Rows($res) > 0): $bA = TRUE; $msg .= 'Du kannst nur einen Account haben.`n'; Endif; Endif; If (Strlen($_POST['createNewPasswordFirst']) <= 4): $bA = TRUE; $msg .= 'Dein Passwort, muss mindestens fünf Zeichen lang sein.`n'; Endif; If ($_POST['createNewPasswordFirst'] != $_POST['createNewPasswordSecond']): $bA = TRUE; $msg .= 'Deine Passwörter stimmen nicht überein.`n'; Endif; If (Strlen($_POST['createNewPasswordFirst']) >= 11): $bA = TRUE; $msg .= 'Dein Passwort, das nicht länger als 10 Zeichen sein!'; Endif; If (Strlen($shortname) < 4): $bA = TRUE; $msg .= 'Dein Name muss mindestens vier Buchstaben lang sein.`n'; Endif; If (Strlen($shortname) > 12): $bA = TRUE; $msg .= 'Dein Name darf nicht mehr als 12 Buchstaben haben!'; Endif; If (Getsetting('requireemail',0) == 1 && is_email($_POST['createNewEmailAddress']) || Getsetting('requireemail',0) == 0): Else: $bA = TRUE; $msg .= 'Du musst eine gültige E-Mail Adresse angeben.`n'; Endif; If ($_POST['AGB_OKAY'] == 1): $bA = TRUE; $msg .= 'Du musst mit den AGB\'s einverstanden sein!'; Endif; If (!$bA): $sql = 'SELECT name FROM accounts WHERE login = "'.$shortname.'"'; $res = Db_Query($sql) or die(Db_Error(LINK)); If (Db_Num_Rows($res) > 0): Output('Fehler: Dieser Name ist leider schon vergeben. Such dir bitte einen anderen aus!'); $_GET['registration'] = 'REQUEST_FORM'; Else: $title = ($_POST['createCharakterSex']?'Bauernmädchen':'Bauernjunge'); If (Getsetting('requirevalidemail',0)): $eV = MD5(Date('Y-m-d H:i:s').$_POST['createNewEmailAddress']); Endif; If ($_GET['r'] > ''): $sql = 'SELECT acctid FROM accounts WHERE login = "'.Rawurldecode($_GET['r']).'"'; $res = Db_Query($sql); $ref = Db_Fetch_Assoc($res); $referer = $ref['acctid']; Else: $referer = 0; Endif; $CREATE_NEW_CHARAKATERE = 'INSERT INTO accounts (name, title, password, sex, login, laston, uniqueid, lastip, superuser, gold, emailaddress, emailvalidation, referer, birthday ) VALUES ( "'.$title.' '.$shortname.'", "'.$title.'", MD5("'.$_POST['createNewPasswordFirst'].'"), "'.$_POST['createCharakterSex'].'", "'.$shortname.'", "'.date('Y-m-d H:i:s',Strtotime(date('c').'-1 day')).'", "'.$_COOKIE['REMOTE_ADDR'].'", "'.getsetting('superuser',0).'", "'.getsetting('newplaystartgold',50).'", "'.$_POST['createNewEmailAddress'].'", "'.$eV.'", "'.$referer.'", "'.(getsetting('activategamedate','0')?getgamedate():'').'")'; Db_Query($sql) or die(Db_Error(LINK)); If (Db_Affected_Rows(LINK) <= 0): Output('Fehler: Dein Account konnte aus unbekannten Gründen nicht erstellt werden. Versuchs bitte einfach erneut. '); Else: If ($eV != ''): mail( $_POST['createNewEmailAddress'], "Die Chroniken von Terve - Account regestration! [Wichtig]", "Hallo ".$shortname.",\n". "als kleines Geschenck für Deine regestration bei uns, bekommst Du 150 Donationspunkte gutegeschrieben.\n\n". "Aber als aller erstes: Herzlich Willkommen in Terve! Eine Chronik, die, so wie wir hoffen, niemals zuende ". "gehen wird!\n". "Bei uns erwarten Dich viele spannende Abenteuer, Quests und vieles, vieles mehr.\n". "Ich würde vorschlagen: Schlage dich im Anfängergebiet gut durch, komme in die Stadt und erlebe das wahre\n". "wunder von Terve, der endlosen Stadt.\n\n". "Doch vorher, klicke bitte auf diesen Link, damit deine Regestration komplett ist:\n\n". "http://".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']."?setEmailValidation=REQUEST_EMAIL&newValidation=".$eV."\n\n". "Viel Spaß,\n". "wünscht dir ein Adminteam.", "From: MySql_Anpera@hotmail.de"); Output('Es wurde eine Email mit dem Freischaltcode an deine Email Adresse geschickt.'); Endif; Endif; Endif; Else: Output('Fehler: '.$msg); $_GET['registration'] = 'REQUEST_FORM'; Endif; Endif; Endif; If ($_GET['registration'] == 'REQUEST_FORM'): Page_Header('Account registrieren!'); Output('<div id="container"> <form action="register.php?createNewCharaktere=REQUEST_CREATE_CHARAKATERE'.($_GET['r']>''?'&r='.$_GET['r']:'').'" method="post" class="niceform"> <fieldset> <legend>Account registrieren</legend> <dl> <dt><label for="createThisCharaktere">Login Name:</label></dt> <dd><input type="text" name="createThisCharaktere" id="createThisCharaktere" size="32" maxlength="8" /> <span class="hotspot" onmouseover="tooltip.show(\'<strong>Loginname - Hilfe </strong><br />Bitte beachte, das dein Loginname mindestens vier Zeichen lang sein muss und maximal acht Zeichen lang sein darf!\');" onmouseout="tooltip.hide();">Hilfe?</span> <a href="http://www.terve.eu" target="_blank"><u>Der Namensgenerator!</u></a></dd> </dl> <dl> <dt><label for="createNewPasswordFirst">Passwort:</label></dt> <dd><input type="password" name="createNewPasswordFirst" id="createNewPasswordFirst" size="32" maxlength="10" /> <span class="hotspot" onmouseover="tooltip.show(\'<strong>Passwort - Hilfe</strong><br />Bitte beachte folgende Punkte:<br />1.Dein Passwort, sollte nicht wie dein Loginname lauten.<br />2.Dein Passwort, muss mindestens 5 Zeichen lang sein.<br />3.Dein Passwort, darf maximal zehn Zeichen lang sein.\');" onmouseout="tooltip.hide();">Hilfe?</span> <a href="http://www.terve.eu" target="_blank"><u>Der Passwortgenerator!</u></a></dd> </dl> <dl> <dt><label for="createNewPasswordSecond">Re Passwort:</label></dt> <dd><input type="password" name="createNewPasswordSecond" id="createNewPasswordSecond" size="32" maxlenght="10"> <span class="hotspot" onmouseover="tooltip.show(\'<strong>Re Passwort - Hilfe</strong><br />Bitte trage hier eine Wiederholung deines Passwortes ein, damit du sicher gehen kannst, das du dir dein Passwort auch merken kannst. Es ist eine reine Vorstichtsmassnahme.\');" onmouseout="tooltip.hide();">Hilfe?</span> <a href="http://www.terve.eu" target="_blank"><u>Der Passwortgenerator!</u></a></dd> </dl> <dl> <dt><label for="createNewEmailAddress">Email Adresse:</label></dt> <dd><input type="text" name="createNewEmailAddress" id="createNewEmailAddress" size="32" maxlength="132"> <span class="hotspot" onmouseover="tooltip.show(\'<strong>Email Adresse - Hilfe</strong><br />Trage hier bitte deine korrekte Email Adresse ein. Damit wir dir deinen Zugangscode zuschiecken können. Und fals du dein Passwort doch mal vergessen solltest, kannst du dir es jeder Zeit wieder an deine Email Adresse schicken lassen. Also, trau dich. ;)\');" onmouseout="tooltip.hide();">Hilfe?</span> <a href="http://www.terve.eu" target="_blank"><u>Verschiedene Email Anbieter!</u></a></dd> </dl> </fieldset> <fieldset> <legend>Ingame Daten</legend> <dl> <dt><label for="createCharakterSex">Geschlecht:</label></dt> <dd> <select size="1" name="createCharakterSex" id="sex"> <option value="0">Männlich</option> <option value="1">Weiblich</option> </select> </dd> </dl> <dl> <dt><label for="theme">Interface:</label></dt> <dd> <select size="1" name="theme" id="theme"> <option value="Design - Cilathron.html">Design - Cilathron</option> </select> </dd> </dl> <dl> <dt><label for="shizo">NPC Name:</label></dt> <dd><input type="text" name="shizo" id="shizo" size="32" maxlength="10"> <span class="hotspot" onmouseover="tooltip.show(\'<strong>NPC Name - Hilfe</strong><br />Trage hier bitte einen Rollenspielnamen ein. Den wenn du mal keine Lust mehr auf deinen eigenen Namen hast, kannst du mit dem NPC System problemlos so tun als wärst du jemand anderes.\');" onmouseout="tooltip.hide();">Hilfe?</span></dd> </dl> </fieldset> <fieldset> <legend>Registration abschliessen:</legend> <dl> <dt><label for="please_read">Bitte lesen:</label></dt> <dd><span style="color: #000000">Herzlich Willkommen auf <a href="http://www.terve.eu" alt="Die Chroniken von Terve">www.Terve.eu</a>! Dies hier soll kein langer Text werden. Wir möchten Dich nur darauf hinweisen, das dies ein kostenloses Role / Powerplay ist. Du kannst hier Rollenspiele führen, oder aber auch Stunden lang im Wald, oder in einem anderen Jagdgebiet, Monster kloppen. Da dieses Spiel kostenlos ist, lebt es von Spenden. Diese sind natürlich nicht zu erwarten. Dennoch erwähnenswert. Nun den, wir bitten Dich, dass du dich hier zivilisiert benimmst. Den wir leben ja nicht in der Steinzeit.`n`n Liebe Grüße,`n Dein Adminteam.</span></dd> </dl> <dl> <dt><label for="its_okay">Einverstanden?</label></dt> <dd> <select size="1" name="AGB_OKAY" id="sex"> <option value="0">Ja ich bin damit einverstanden!</option> <option value="1">Nein, damit bin ich nicht einverstanden!</option> </select> </dd> </dl> </fieldset> <fieldset class="action"> <center><input type="submit" name="submit" id="submit" value="Anmeldung abschicken!" /></center> </fieldset> </form> </div>',true); Endif; page_footer(); ?>') Lg, My. |
Autor: | Eliwood [ Sa 11 Jul, 2009 16:45 ] |
Betreff des Beitrags: | Re: Create will nicht so wie ich will :D |
Und was genau geht beim Charakter erschaffen nicht? Fehlermeldung? Etwas mehr Informationen dürftest du schon rausrücken. PS: Dein Programmierstil ist grausig. Ich glaube, du hast es gerade geschafft, gegen so ziemlich alle Konventionen zu verstossen. ![]() |
Autor: | MySql [ Sa 11 Jul, 2009 16:47 ] |
Betreff des Beitrags: | Re: Create will nicht so wie ich will :D |
OT : Syntax > Ich drücke meine Tabtaste ![]() Endif etc. < Mein Stil , hatten wir letztes Jahr aber schon drüber gesprochen, falls du dich erinnerst.. Fehlermeldung: $this->bbcode_second_pass_code('', 'Fehler: Dein Account konnte aus unbekannten Gründen nicht erstellt werden. Versuchs bitte einfach erneut.') |
Autor: | Eliwood [ Sa 11 Jul, 2009 17:21 ] |
Betreff des Beitrags: | Re: Create will nicht so wie ich will :D |
Ich mein nicht nur die Alternative Syntax. Auch deine Gross-Kleinschreibung. Und deine teilweise uneinheitliche Variablenbenennung. Die übrigens auch Schuld daran ist, dass es nicht funktioniert. Du hättest nachschauen können, woher die Fehlermeldung kommt. Dann wärst du auf eine Überprüfung gestossen, die prüft, ob db_affected_rows() <= 0 ist. Und jetzt müsstest du nur noch logisch überlegeb und etwas die Augen öffnen. Warum sind denn keine Zeilen betroffen...? $this->bbcode_second_pass_code('', ' $CREATE_NEW_CHARAKATERE = 'INSERT INTO accounts (name, title, password, sex, login, laston, uniqueid, lastip, superuser, gold, emailaddress, emailvalidation, referer, birthday ) VALUES ( "'.$title.' '.$shortname.'", "'.$title.'", MD5("'.$_POST['createNewPasswordFirst'].'"), "'.$_POST['createCharakterSex'].'", "'.$shortname.'", "'.date('Y-m-d H:i:s',Strtotime(date('c').'-1 day')).'", "'.$_COOKIE['REMOTE_ADDR'].'", "'.getsetting('superuser',0).'", "'.getsetting('newplaystartgold',50).'", "'.$_POST['createNewEmailAddress'].'", "'.$eV.'", "'.$referer.'", "'.(getsetting('activategamedate','0')?getgamedate():'').'")'; Db_Query($sql) or die(Db_Error(LINK));') Ohne Worte. PS: db_query or die(db_error) macht eh keinen Sinn, da db_query schon ein mysql_query or die(mysql_error) macht. |
Autor: | MySql [ Sa 11 Jul, 2009 17:28 ] |
Betreff des Beitrags: | Re: Create will nicht so wie ich will :D |
Also Eli, ich könnt dir ja gerade mal so richtig die Füße küssen. :> Kann ja mal passieren, dass man einen Variablennamen vertauscht.. ![]() Aber trotzdem, vielen , vielen Dank ♥ |
Autor: | Auric [ So 12 Jul, 2009 15:04 ] |
Betreff des Beitrags: | Re: Create will nicht so wie ich will :D |
Natürlich kann man mal Variablennamen vertauschen, do wie Eliwood schon sagte lässt sich das durch sauberen Coding-Stil deutlich reduzieren. Und ohne jetzt zum Troll werden zu wollen: In diesem (und vielen andern) Forum benutzen > 95% die Standard-Syntax für Kontrollstrukturen. Das macht den Support nicht unbedingt leichter und Einsteiger werden weiter mit Inkonsistenzen belastet. Auric |
Autor: | MySql [ So 12 Jul, 2009 15:13 ] |
Betreff des Beitrags: | Re: Create will nicht so wie ich will :D |
Dann bedarf es wohl eine Umstellung meiner Seits. ![]() |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |