Dein Login-Name ist `^$str_name`0. `n`n `n`n" .($trash>0?"Charaktere, die nie einloggen, werden nach $trash Tag(en) Inaktivität gelöscht.`n":"") .($new>0?"Charaktere, die nie Level 2 erreichen, werden nach $new Tag(en) Inaktivität gelöscht.`n":"") .($old>0?"Charaktere, die Level 2 erreicht haben, werden nach $old Tag(en) Inaktivität gelöscht.":"") ."",true); output("`n`n`n`b`^Hinweis:`b`0`nSolltest du Probleme mit dem Login haben, musst du vermutlich erst Cookies zulassen! Im Internet Explorer 6 klickst du dazu `iExtras - Internetoptionen - Datenschutz - Bearbeiten`i und trägst dort die URL dieses Servers (".getsetting("server_address","localhost").") als `iZugelassen`i ein. Beim Internet Explorer 5 klickst du `iExtras - Internetoptionen - Sicherheit - \"Vertrauenswürdige Sites\" - Sites`i und trägst dort die Adressen ein. Bei anderen Browsern gibt es ähnliche Einstellungen."); } addnav('Startseite','index.php'.($_GET['r']>0?'?r='.intval($_GET['r']):'')); // Filter auf PC checken checkban(); $str_op = $_GET['op']; switch($str_op) { case 'val': $str_vali = $_GET['id']; $sql = "SELECT login,name,password,emailaddress,uniqueid,lastip FROM accounts WHERE emailvalidation='$str_vali' AND emailvalidation!=''"; $result = db_query($sql); // Wenn Account mit dieser ValidierungsID existiert if (db_num_rows($result)>0) { $row = db_fetch_assoc($result); checkban($row['login'], $row['lastip'], $row['uniqueid'], $row['emailaddress']); // Passwort vergessen, neues aussuchen if (substr($str_vali,0,1)=='x') { $str_pass1 = $_POST['pass1']; $str_pass2 = $_POST['pass2']; $form = true; if (!empty($str_pass1)) { $form = false; if ($str_pass1 != $str_pass2) { output("`#Deine Passwörter stimmen nicht überein.`n"); $form = true; } if (strlen($str_pass1)<=3) { output("`#Dein Passwort ist zu kurz. Es muss mindestens 4 Zeichen lang sein.`n"); $form = true; } // Mit den Passwörtern stimmt alles if(!$form) { //es gibt hier kein korrektes $session['user'], workaround für user_update $session['user']['emailvalidation']=$session['user']['password']=''; user_update( array( 'emailvalidation'=>'', 'password'=>array('sql'=>true,'value'=>"MD5('$str_pass1')"), 'where'=>"emailvalidation='$str_vali' AND emailvalidation!=''" ) ); db_query($sql); output("`#`cDein Passwort wurde geändert. Du kannst jetzt einloggen.`c`0"); $row['password'] = md5($str_pass1); show_created_screen($row['login'],$row['password']); $form = false; } } // END Wenn Pw gegeben if ($form) { $arr_form = array('pass1'=>'Dein neues Passwort:,password', 'pass2'=>'Passwort bestätigen:,password'); $str_lnk = 'create.php?op=val&id='.$str_vali; output("`&`c`bNeues Passwort wählen`b`c`n"); output("`0
",true); showform($arr_form,array(),false,'Neues Passwort speichern!'); output("
",true); } } // Standard der EMail-Aktivierung else { //es gibt hier kein korrektes $session['user'], workaround für user_update $session['user']['emailvalidation']=$session['user']['password']=''; user_update( array( 'emailvalidation'=>'', 'where'=>"emailvalidation='$str_vali' AND emailvalidation!=''" ) ); output("`#`cDeine E-Mail Adresse wurde bestätigt. Du kannst jetzt einloggen.`c`0"); show_created_screen($row['login'],$row['password']); savesetting("newplayer",addslashes($row['name'])); } } else { output("`#Deine E-Mail Adresse konnte nicht bestätigt werden. Möglicherweise wurde sie schon bestätigt. Versuch mal dich einzuloggen und schreibe eine Anfrage, falls es nicht klappt."); page_footer(); exit; } // END Validierung break; // Passwort vergessen case 'forgot': $str_login = $_POST['charname']; if (!empty($str_login)) { checkban($str_login); $sql = "SELECT login,emailaddress,emailvalidation,password FROM accounts WHERE login='".db_real_escape_string($str_login)."'"; $result = db_query($sql); // Wenn Account gefunden if (db_num_rows($result)>0) { $row = db_fetch_assoc($result); // Wenn gültige Emailadresse if ( is_email( $row['emailaddress'] ) ) { // Wenn Validierung noch nicht aktiviert, nun vornehmen if ($row['emailvalidation']=='') { $row['emailvalidation']=substr("x".md5(date("Y-m-d H:i:s").$row['password']),0,32); //es gibt hier kein korrektes $session['user'], workaround für user_update $session['user']['emailvalidation']=$session['user']['password']=''; user_update( array( 'emailvalidation'=>$row['emailvalidation'], 'where'=>"login='".$row['login']."'" ) ); } // EMail versenden send_mail($row['emailaddress'], getsetting('townname','Atrahor')."-Account: Passwort vergessen", "Jemand von ".$_SERVER['REMOTE_ADDR']." hat ein vergessenes Passwort von deinem Account angefordert. Wenn du das warst, ist hier dein" ." Link. Du kannst damit einloggen und dein Passwort im Profil einstellen.\n\n" ."Wenn du diese E-Mail nicht angefordert hast, keine Panik! Du hast sie bekommen, sonst niemand." ."\n\n http://".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']."?op=val&id=$row[emailvalidation]\n\nDanke für's Spielen!", "From: ".getsetting("gameadminemail","postmaster@localhost.com") ); output("`#Eine neue Bestätigungsmail wurde an die mit diesem Account gespeicherte Adresse verschickt. Du kannst sie zum Einloggen und zum ändern des Passworts verwenden. Solltest du innerhalb der nächsten paar Minuten keine Mail bekommen, schicke bitte eine Anfrage nach Hilfe ab!"); } else { output("`#Bei diesem Account wurde keine gültige E-Mail Adresse angegeben. Wir können mit dem vergessenen Passwort nicht helfen."); } } else { output("`#Dieser Charakter kann nicht gefunden werden. Suche mal in der Einwohnerliste danach, vielleicht wurde der Charakter gelöscht."); } } // Noch keine Passwort-Anfrage abgeschickt, Formular anzeigen else { $arr_form = array('charname'=>'Gebe den Login-Namen deines Charakters ein (ohne Titel):'); $str_lnk = 'create.php?op=forgot'; output('`c`&`bVergessenes Passwort:`b`c`n`n
',true); showform($arr_form,array(),false,'Passwort per Mail zuschicken'); output('
',true); } // END Passwort vergessen break; // Standard: Charakter erstellen - Formular anzeigen default: // Wenn keine Neuanmeldungen möglich if (getsetting("blocknewchar","0")==1) { output(get_title('Die Anmeldungen in '.getsetting('townname','Atrahor').' sind momentan gesperrt!')); output("`c`tIm Moment sind leider keine Neuanmeldungen möglich. Wenn Du den Grund erfahren möchtest, so schreibe Bitte eine Anfrage.`0`c"); page_footer(); } // Anmeldeform. abgeschickt if ($str_op == 'create') { $str_pass1 = $_POST['pass1']; $str_pass2 = $_POST['pass2']; $str_name = $_POST['name']; $str_mail = $_POST['email']; // EMail checken // Emailaddy gegeben? if ( (getsetting("requireemail",0)==1 && is_email($str_mail)) || getsetting("requireemail",0)==0) { // Ban? if (checkban(false, false, false, $str_mail, 0, false)) { output(get_title('`$Fehler:')); output("Du bist hier nicht erwünscht (E-Mail Adresse gesperrt).`c`n"); page_footer(); exit; } // Blacklist? if( check_blacklist( BLACKLIST_EMAIL, stripslashes(strtolower($str_mail)) ) ) { output(get_title('`$Fehler:')); output("Du bist hier nicht erwünscht (E-Mail Adresse verboten).`c`n"); page_footer(); exit; } // Auf doppelte Emailaddys checken if (getsetting("blockdupeemail",0)==1 && getsetting("requireemail",0)==1) { $sql = "SELECT login FROM accounts WHERE emailaddress='$str_mail'"; $result = db_query($sql); if (db_num_rows($result)>0) { $blockaccount=true; $msg.="Du kannst nur einen Account pro Emailadresse haben.`n"; } } } else { $msg.="Du musst eine gültige E-Mail Adresse eingeben. Diese wird für bestimmte Funktionen des Spiels verwendet!`n"; $blockaccount=true; } // Passwörter // Passwort zu kurz if (strlen($str_pass1)<=3) { $msg.="Dein Passwort muss mindestens 4 Zeichen lang sein.`n"; $blockaccount=true; } // Passwortkontrolle falsch if ($str_pass1!=$str_pass2) { $msg.="Die Passwörter stimmen nicht überein.`n"; $blockaccount=true; } // Name checken // Auf jeden Fall Formatierungstags raus $str_name = trim(strip_appoencode($str_name,3)); // Auf Korrektheit prüfen $str_valid = user_rename(0, stripslashes($str_name), false, false); if(true !== $str_valid) { switch($str_valid) { case 'login_banned': $msg .= 'Dieser Name ist gebannt!'; break; case 'login_blacklist': $msg .= 'Dieser Name ist verboten!'; break; case 'login_dupe': $msg .= 'Diesen Namen gibt es leider schon!'; break; case 'login_tooshort': $msg .= 'Dein gewählter Name ist zu kurz (Min. '.getsetting('nameminlen',3).' Zeichen)!'; break; case 'login_toolong': $msg .= 'Dein gewählter Name ist zu lang (Max. '.getsetting('namemaxlen',3).' Zeichen)!'; break; case 'login_badword': $msg .= 'Dein gewählter Name enthält unzulässige Begriffe!'; break; case 'login_spaceinname': $msg .= 'Dein gewählter Name enthält Leerzeichen, was leider nicht erlaubt ist!'; break; case 'login_specialcharinname': $msg .= 'Dein gewählter Name enthält Sonderzeichen, was leider nicht erlaubt ist!'; break; case 'login_criticalcharinname': $msg .= 'Dein gewählter Name enthält eines der folgenden Zeichen, die für einen Namen nicht geeignet sind:`n '.str_replace('\\','',getsetting('criticalchars','')); break; case 'login_titleinname': $msg .= 'Dein gewählter Name enthält einen Titel, der ein Teil des Spiels ist!'; break; default: $msg .= 'Irgendwas stimmt mit deinem Namen nicht, ich weiß nur nicht was ; ) Schreibe bitte eine Anfrage!`nCode: '.$str_valid; break; } $blockaccount = true; } // Account anlegen! if (!$blockaccount) { $int_sex = $_POST['sex']==1 ? 1 : 0; // Namen in reiner Großschreibung verhindern if(!getsetting('allletter_up_allow',1)) { if(ctype_upper($str_name)) { $str_name = strtolower($str_name); } } // 1. Buchstabe immer groß if(getsetting('firstletter_up',1)) { $str_name = ucfirst($str_name); } //Getting the titles from the settings table //Dragonslayer $titles = unserialize( stripslashes(getsetting('title_array',null)) ); $title = addslashes($titles[0][$int_sex]); // Emailvalidation if (getsetting("requirevalidemail",0)) { $emailverification=md5(date("Y-m-d H:i:s").$str_mail); } // Empfehlung $int_refid = (int)$_GET['r']; if ( $int_refid > 0 ) { $referer=$int_refid; } else { $referer=0; } //Für jeden Account werden per Default folgende Preferences gesetzt $arr_prefs = array( 'preview' => 1, 'minimail' => 1, 'nosounds' => 1, 'nav_help_enabled' => 1, 'showinvent' => 1, ); // Datensatz in accounts anlegen $sql = "INSERT INTO accounts SET name='$title $str_name', title='$title', password=MD5( '$str_pass1' ), sex=$int_sex, login='$str_name', laston=NOW(), uniqueid='".$_COOKIE['lgi']."', lastip='".$_SERVER['REMOTE_ADDR']."', gold=".(int)getsetting("newplayerstartgold",50).", emailaddress='$str_mail', emailvalidation='$emailverification', prefs = '".serialize($arr_prefs)."' "; db_query($sql); if (db_affected_rows(LINK)<=0) { output("`$Fehler`^: Dein Account konnte aus unbekannten Gründen nicht erstellt werden. Versuchs bitte einfach nochmal oder schreibe eine Anfrage."); page_footer(); } // Datensatz in Extra-Info anlegen $int_acctid = db_insert_id(); $sql = "INSERT INTO account_extra_info SET acctid=".$int_acctid.", birthday='".getsetting('gamedate','0000-00-00')."', referer='".$referer."' "; db_query($sql); // Datensatz in Statistik anlegen $sql = "INSERT INTO account_stats SET acctid=".$int_acctid." "; db_query($sql); if ($emailverification!="") { // Aktivierungsmail versenden send_mail($_POST['email'], getsetting('townname','Atrahor')."-Account: Bestätigung", "Um deinen Charakter in ".getsetting('townname','Atrahor')." freizuschalten, musst du nur noch auf den folgenden Link klicken.\n\n http://".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']."?op=val&id=$emailverification\n\n ~ Danke für's Spielen!", "From: ".getsetting("gameadminemail","postmaster@localhost.com") ); output("`4Eine E-Mail wurde an `$$str_mail`4 geschickt, um die Adresse zu bestätigen. Klicke auf den Link darin, um den Account zu aktivieren.`0`n`n"); } else { output(get_title('Dein Charakter wurde erstellt. Du kannst Dich jetzt einloggen.')); $sql = "SELECT login,password FROM accounts WHERE acctid=$int_acctid"; $result = db_query($sql); $row = db_fetch_assoc($result); show_created_screen($row['login'],$row['password']); savesetting("newplayer",$title.' '.$str_name); } systemlog('`@Neuen Spieler registriert: `0',0,$int_acctid); } // END Account anlegen // Wenn Anmeldung fehlerhaft //Wird direkt über dem Formular angezeigt! else { $str_error_message = '`c`$Fehler`^:`n'.$msg.'`0`c`n'; $str_op=''; } } // END Formular abgesendet // Formular anzeigen if ($str_op=='') { $str_out .= get_title('Charakter erstellen'); // Multi-Warnung $demouser=getsetting('demouser_acctid',0); $sql = 'SELECT acctid FROM accounts WHERE uniqueid = "'.addslashes($session['uniqueid']).'" '.($demouser>0 ? ' AND acctid <> '.(int)$demouser : ''); //WHERE lastip = "'.addslashes($_SERVER['REMOTE_ADDR']).'" AND uniqueid = "'.addslashes($session['uniqueid']).'" $res = db_query($sql); $amount=db_num_rows($res); if ($amount > 2) { $str_out .= '`n `$Achtung: `^Über deinen Anschluss / deinen PC laufen bereits '.$amount.' Accounts!`n Bevor du einen Weiteren erstellst, solltest du die Regeln noch einmal ganz genau lesen und bei evtl. Unklarheiten eine Anfrage verfassen.`n Bei Löschungen aufgrund von Verstößen gegen die Multiaccountregeln gibt es keinerlei Anspruch auf Entschädigung oder Wiederherstellung!`n`n`n'; } // END Multi-Warnung $arr_data = array('sex'=>0); $titles = unserialize( stripslashes(getsetting('title_array',null)) ); $arr_data = array_merge($arr_data,$_POST); $arr_data['name']=stripslashes($arr_data['name']); $arr_form = array('name'=>'Wie soll Dein Name in dieser Welt lauten?', 'pass1'=>'Gebe bitte ein Passwort an:,password', 'pass2'=>'Wiederhole dieses Passwort:,password', 'email'=>'Deine E-Mail Adresse:,text,255', 'sex'=>'Dein Geschlecht in dieser Welt ist:,radio,1,Weiblich,0,Männlich'); $str_lnk = 'create.php?op=create'.(!empty($_GET['r'])?'&r='.$_GET['r']:''); $str_out .= '`0
`tDein Name darf `y`bkeinen Titel`b`t (Lord, Graf, Meister etc.) und `y`bkeine Beschreibung`b`t (ScharfesSchwert, grünerHund etc.) enthalten. Er sollte nach Mittelalter klingen, mindestens jedoch nach Mythen und Sagen. Englische Namen sind dafür nur bedingt geeignet. Namen von Prominenten, Personen der Zeitgeschichte oder Film-Helden sind ebenfalls nicht erwünscht. Anhängsel wie -chan etc. solltest du auch vermeiden.`n Als kleine `y`bAnregung`b`t für einen neuen Namen können wir dir unseren ~`bNamengenerator`b~ anbieten.`n `nMit dem Erstellen deines Charakters stimmst du ausdrücklich den hier geltenden ~`bRegeln`b`t~ zu!`n`n'; $str_out .= '`tDie Eingabe einer `y`bE-Mail Adresse`b`t '; if(getsetting("requireemail",0)==0) { $str_out .= "ist `boptional`b. Wenn du aber keine eingibst, dann funktionieren viele bequeme Funktionen des Spiels nicht mehr, z.B.`n "; } else { $str_out .= "wird `bbenötigt`b, damit viele bequeme Funktionen des Spiels funktionieren, z.B.`n`0 `n "; if(getsetting("requirevalidemail",0)==1) { $str_out .= 'Außerdem wird eine E-Mail zur `bBestätigung`b an die eingegebene Adresse geschickt, bevor du dich einloggen kannst.'; } } $str_out .= 'Sei aber versichert, deine Mailadresse wird auf keinen Fall an Dritte weitergegeben!`n
`n'; //Wenn ein Fehler aufgetreten ist dann soll die fehlermeldung da zu sehen sein wo der User hinguckt, //nämlich auf das Formular! $str_out .= $str_error_message; //$str_out .= generateform($arr_form,$arr_data,false,getsetting('townname','Atrahor').' betreten!'); $str_out.='`0
Dein Char (deine Spielfigur) soll sein
und auf den Namen hören.
Zusammen ergibt das: '.(isset($_POST['sex'])?$titles[0][$arr_data['sex']]:'?').' '.($arr_data['name']>''?$arr_data['name']:'?').'
Bedenke, dass der Name dein Haupt-Identifikationsmerkmal in diesem Spiel ist und sich nicht so einfach ändern lässt.`n`n
Gib bitte ein Passwort ein:
Wiederhole dieses Passwort:
Deine E-Mail Adresse:
 
'; $str_out .= "
"; output($str_out); } // END Formular anzeigen // END default break; } // END Main-Switch page_footer(); ?>