|
You last visited: Today at 00:34
Advertisement
[Sammelthread] Metin2 Webdevelopment
Discussion on [Sammelthread] Metin2 Webdevelopment within the Metin2 PServer Designs, Websites & Scripts forum part of the Metin2 Private Server category.
10/17/2015, 21:47
|
#1
|
elite*gold: 0
Join Date: May 2012
Posts: 871
Received Thanks: 642
|
[Sammelthread] Metin2 Webdevelopment
Da die Metin2 Sektion anscheinend im Bereich Webentwicklung ein wenig hinterher hinkt, möchte ich dieses Stück für Stück ausbessern, in dem ich und eventuell auch noch andere Entwickler in diesem Thread Vorschläge oder ganze Systeme kostenlos zur Verfügung stellen.
Diese Systeme sind ganz einfach auf jegliche Webseiten anpassbar ohen dabei auch nur annähernd das HTML oder CSS der Webseite zu beeinflussen.
Damit dieser Thread nicht direkt gelöscht wird habe ich mal eine "halbfertige" Registrierung geschrieben. Da mir die Materie der Metin2 Sektion allerdings völlig fremd ist, würde ich darum bitten, dass mir gesgat wird welche Validierungen denn für eine Registrierung überhaupt notwendig sind, wie das Passwort gehasht wird und und und...
Natürlich hat das eher etwas mit dem Webentwicklungsbereich von Elitepvpers zutun, allerdings möchte ich bei vielen Dingen speziell auf Metin2 eingehen, da zum Beispiel die Passwortverschlüsselung für Metin2 explizit ist und somit auch meiner Meinung nach in den Bereich gehört. Natürlich werden auch andere Funktionen folgen die mehr auf die Metin2 Spieledatenbank oder Source (Socketverbindungen + Packets) eingehen.
Ich würde meine Hilfe in dieser Sektion gerne anbieten, wenn ihr mir ein wenig unter die Arme greift und mich ein wenig hinein schnüffeln lasst.
Datenbank
PHP Code:
$credentialsArray = array( 'Host' => 'HOST', 'User' => 'USERNAME', 'Password' => 'PASSWORT', 'Database' => 'DATABSE' );
$sql = new MySQLi($mysqliCredentialsArray['Host'], $mysqliCredentialsArray['User'], $mysqliCredentialsArray['Password'], $mysqliCredentialsArray['Database']);
PHP Code:
<?php
class Database { protected $sql; protected $tableArray; protected $result; function __construct() { global $credentialsArray; $mysqliCredentialsArray = $credentialsArray; $this->sql = new MySQLi($mysqliCredentialsArray['Host'], $mysqliCredentialsArray['User'], $mysqliCredentialsArray['Password'], $mysqliCredentialsArray['Database']); } private function ObjectValidation($object){ foreach($object as $key => $value){ $secure = self::Secure($value); $object[$key] = $secure; } return $object; } private function QueryConstruction($object, $statement){ $query = null; switch($statement){ case 'cols': foreach($object as $key => $value){ $query .= $value . ', '; } $query = substr($query, 0, strlen($query) -2); break; case 'where': foreach($object as $key => $value){ if(gettype($value != 'integer')){$value = '\'' . $value . '\''; }else{$value = $value;} $query .= $key . ' = ' . $value . ', '; } $query = substr($query, 0, strlen($query) -2); $query = ' WHERE ' . $query; break; case 'update': foreach($object as $key => $value){ if(gettype($value != 'integer')){$value = '\'' . $value . '\''; }else{$value = $value;} $query .= $key . ' = ' . $value . ', '; } $query = substr($query, 0, strlen($query) -2); break; case 'cols2': foreach($object as $key => $value){ $query .= $key . ', '; } $query = substr($query, 0, strlen($query) -2); break; case 'values': foreach($object as $key => $value){ if(gettype($value != 'integer')){ $query .= '\'' . $value . '\', '; }else { $query .= $value . ', '; } } $query = substr($query, 0, strlen($query) -2); break; } return $query; } protected function Select($object, $table, $where, $extension = null){ $queryRows = self::QueryConstruction(self::ObjectValidation($object), 'cols'); if($where){$whereRows = self::QueryConstruction(self::ObjectValidation($where), 'where');}else{$whereRows = null;} $this->result = $this->sql->query('SELECT ' . $queryRows . ' FROM ' . $table . $whereRows . $extension); if($this->sql -> errno > 0){echo $this->sql->errno,': ',$this->sql->error;} $store = array( 'Rows' => $this->result->num_rows, 'Result' => $this->result->fetch_all(MYSQLI_ASSOC), ); $this->result->close(); return $store; } protected function Insert($object, $table){ $queryRows = self::QueryConstruction(self::ObjectValidation($object), 'cols2'); $queryValues = self::QueryConstruction(self::ObjectValidation($object), 'values'); $this->sql->query('INSERT INTO ' . $table . ' (' . $queryRows . ') VALUES (' . $queryValues . ')'); if($this->sql -> errno > 0){echo $this->sql->errno,': ',$this->sql->error;} } protected function Update($object, $table, $where){ $queryConstruct = self::QueryConstruction(self::ObjectValidation($object), 'update'); $whereRows = self::QueryConstruction(self::ObjectValidation($where), 'where'); $this->sql->query('UPDATE ' . $table . ' SET ' . $queryConstruct . $whereRows . ''); if($this->sql -> errno > 0){echo $this->sql->errno,': ',$this->sql->error;} } protected function Delete($table, $where){ $whereRows = self::QueryConstruction(self::ObjectValidation($where), 'where'); $this->sql->query('DELETE FROM ' . $table . $whereRows); if($this->sql -> errno > 0){echo $this->sql->errno,': ',$this->sql->error;} } /******************************************************************************************************************************************************************\ * Escape Functions \******************************************************************************************************************************************************************/ private static $valuePattern = '[a-zA-Z0-9`´\'.-~#!?+=\(\)",]+'; private static $replaceHTML = FALSE;
protected static function Secure( $qry, $html = FALSE ) { $query = $qry; self::$replaceHTML = $html; if(strpos(strtolower($qry),'insert into') !== FALSE && strpos(strtolower($qry),'values') !== FALSE) { preg_match_all('/VALUES \(('.self::$valuePattern.')\)/',$query, $params); $params = explode(',',$params[1][0]); $query = self::ParseParams($query,$params); } else { preg_match_all('/('.self::$valuePattern.')([\s]){0,}=([\s]){0,}('.self::$valuePattern.')/',$query, $params); $query = self::ParseParams($query, $params[4]); } return $query; } private static function ParseParams( $query, $params ) { $counter = 0; foreach($params as $param => $value) { $query = str_replace($value,"[$counter]",$query); $counter++; } if(!empty($params[0])) { foreach($params as $param => $value) { $params[$param] = self::ParseParam($value); } } $counter = 0; foreach($params as $param => $value) { $query = str_replace("[$counter]", $value,$query); $counter++; } return $query; } private static function ParseParam( $param ) { $count = substr_count($param,'\''); $param = str_replace(array('/','\\','\'','"','`','´'),'',$param); if($count != 0) { $param = "'$param'"; } if(self::$replaceHTML) { $param = htmlspecialchars($param); $param = htmlentities($param); $param = strip_tags($param); } return $param; } }
Registration (uncompleted)
PHP Code:
class MySQLRegistration extends Database { private $val; //Request all credentials information private function GetAccount($post){ $getAccount = self::Select(array('ROW'), 'TABLE', array('ROW' => $post['ACCOUNT']), ' LIMIT 1'); $getAccount['Rows'] <= 0 ? $this->val = 1 : $this->val = 'This account is already in use.'; } private function ComparePassword($post){ $post['PASSWORD1'] === $post['PASSWORD2'] ? $this->val = 1 : $this->val = 'Your passwords does not match.'; } private function CompareMail($post){ $post['MAIL1'] === $post['MAIL2'] ? $this->val = 1 : $this->val = 'Your mails does not match.'; strpos($post['MAIL1'], '@') ? $this->val = 1 : $this->val = 'This is not a valid Email adress'; } //Select all credential information public function GetCredentials($post){ //Check if account is in use self::GetAccount($post); //Compare given passwords self::ComparePassword($post); //Compare and Check given mails self::CompareMais($post); $this->val === 1 ? $out = self::SetNewAccount($post) : $out = $this->val; return $out; } //Set a new accoiunt private function SetNewAccount($post){ //Just unset the unimportant values of post array //example unset($post['EXAMPLE']); self::Insert($post, 'TABLE'); return 'Account has been created.'; } }
|
|
|
10/21/2015, 10:26
|
#2
|
elite*gold: 0
Join Date: Feb 2015
Posts: 306
Received Thanks: 171
|
danke für dein Sammelthread 
ich wünsche dir viel spaß & Erfolg
mit deinem Thread & würde mich sehr
auf weitere Releases von dir freuen.
schöne grüße
Kampfzwerg
|
|
|
10/23/2015, 08:54
|
#3
|
elite*gold: 0
Join Date: May 2012
Posts: 871
Received Thanks: 642
|
Ich bräuchte halt wie gesagt jemanden der mich ein wenig unterstützt, da ich mich mit der Matiere von Metin2 überhaupt nicht auskenne.
|
|
|
10/23/2015, 14:42
|
#4
|
elite*gold: 0
Join Date: Jun 2011
Posts: 1,126
Received Thanks: 928
|
@xsrf da du dich ja mit Webentwicklung und der Syntax auskennst, würde ich dir einfach
vorschlagen mal ein vorhandenes CMS zu downloaden (Am besten das von !HEN) und dir die Informationen da heraus zu nehmen. Ansonsten wirste hier sicher auch noch paar hilfsbereite Leute finden, habe leider momentan zu wenig Zeit.
|
|
|
10/23/2015, 20:46
|
#5
|
elite*gold: 0
Join Date: May 2012
Posts: 871
Received Thanks: 642
|
Die Grundfunktionen sind keine große Sache. Ich brauche halt einen Testserver der sich bereiterklärt mich diverse Sachen testen zu lassen, da man weit aus mehr daraus holen kann als simple Datenbankabfragen.
|
|
|
10/24/2015, 01:08
|
#6
|
elite*gold: 0
Join Date: Jul 2012
Posts: 5,520
Received Thanks: 1,350
|
Quote:
Originally Posted by xsrf
Die Grundfunktionen sind keine große Sache. Ich brauche halt einen Testserver der sich bereiterklärt mich diverse Sachen testen zu lassen, da man weit aus mehr daraus holen kann als simple Datenbankabfragen.
|
Einfach mal selbst ein Hamachi Server aufsetzen ...
|
|
|
10/24/2015, 08:33
|
#7
|
elite*gold: 0
Join Date: May 2012
Posts: 871
Received Thanks: 642
|
Wie oft soll ich noch erwähnen, dass ich keine Erfahrug in Metin habe.
Außerdem dient Hamachi nur zum spielej mit anderen Personen, lokal brauche ich das also nicht.
Ich möchte etwas für euch entwickeln und das kostenlos also kann ich dich ruhig darum bitten, dass mir Unterstützung von jemanden angenoten wird der in der Materie vertraut ist.
|
|
|
10/24/2015, 15:19
|
#8
|
elite*gold: 0
Join Date: Jul 2012
Posts: 5,520
Received Thanks: 1,350
|
Quote:
Originally Posted by xsrf
Wie oft soll ich noch erwähnen, dass ich keine Erfahrug in Metin habe.
Außerdem dient Hamachi nur zum spielej mit anderen Personen, lokal brauche ich das also nicht.
Ich möchte etwas für euch entwickeln und das kostenlos also kann ich dich ruhig darum bitten, dass mir Unterstützung von jemanden angenoten wird der in der Materie vertraut ist.
|
Hamachi + XAMPP + YouTube Tut = Win ...
Du brauchst bei diesen Sachen keine Erfahrung wird alles erklärt.
|
|
|
10/24/2015, 18:41
|
#9
|
elite*gold: 16
Join Date: Mar 2014
Posts: 1,076
Received Thanks: 664
|
Quote:
Originally Posted by Red Firestar
Hamachi + XAMPP + YouTube Tut = Win ...
Du brauchst bei diesen Sachen keine Erfahrung wird alles erklärt.
|
Er fragt lediglich nach Hilfe und ggf. einem Testserver damit er sich mit der Materie auseinander setzen kann.
Ich nehme an er macht dies zur Übung und möchte der Metin2 Com nebenbei noch etwas schenken, da ist es nachvollziehbar, dass er sich keine Metin2 Erfahrung aneignen möchte da ihn das Spiel evtl auch nicht interessiert.
Ich finde es toll, dass du so etwas machst! Leider bin ich nichtmehr so aktiv in der Szene, sodass ich helfen könnte, tut mir leid.
|
|
|
10/24/2015, 19:50
|
#10
|
elite*gold: 0
Join Date: May 2012
Posts: 871
Received Thanks: 642
|
Quote:
Originally Posted by Red Firestar
Hamachi + XAMPP + YouTube Tut = Win ...
Du brauchst bei diesen Sachen keine Erfahrung wird alles erklärt.
|
Hamachi? Ist nicht nötig, da das alles nur lokal laufen soll.
XAMPP? Installiert sowie IIS. Hat ebenfalls nichts damit zutun.
Youtube? Was soll ich denn da eingeben? "How to neue Metin2 Internetseiten Features herausfinden"...
Was genau möchtest du mit diesen sinnfreien Beiträgen bezwecken?
Ich suche keine Erklärung zum entwickeln von Webseiten, das kann ich bereits und das sogar sehr gut.
Ich suche auch keine Anleitung wie man einen Metin2 Server installiert.
Ledigliche suche ich nach einem oder ein paar Leuten die sich seit Jahren mit Metin2 auseinandersetzen und mir sagen können: "Programmier das und das System.".
Außerdem gibt es eine Source für Metin2 in diese ich Funktionen implementieren möchte, mit der die Webseite kommunizieren kann um die Kommunikation zwischen beiden Parteien herzustellen.
Ich bin kein Anfänger und weiß sehr gut was ich mache, allerdings kenne ich das Spiel Metin2 kein Stück und brauche daher Leute die sich damit auskennen.
Wenn du es jetzt immer noch nicht verstanden hast solltest du dir ernsthaft Gedanken machen...
|
|
|
 |
Similar Threads
|
Webdesign / Webdevelopment
08/27/2014 - Metin2 Trading - 0 Replies
Hello, i`m offering webdesign / webdevelopment services wich include :
WEB interfaces ( Website layouts)
GUI interfaces ( Game and others)
SCRIPT Development ( i can do any scripts u request ).
and any other things.
Anyways , my portfolio :
DarkDev.EU » Portofoliu
Development projects :
|
[Buying] [S]Webdevelopment(code)
07/08/2014 - Coders Trading - 0 Replies
Meine ungefähre Vorstellung:
Man kann Steam Profile auf dieser Website auflisten / aufschreiben / posten (what ever), es müssen aber mindestens 2-3 Leute diesen Steam Profil posten, um vor Spams zu schützen. Dazu kann man nach bestimmten Profilen suchen, die bereits vorhanden sind, diese kann man dann z.B reporten und diese Reports sollen dann zu einer E-mail, dafür muss man sich aber noch anmelden ggf. registrieren.
Meine Grundidee als Bild gibt es bei Interesse.
Preisvorschlag per...
|
[Selling] Webdevelopment by Kentika
06/07/2014 - elite*gold Trading - 3 Replies
Hallo Liebe Community,
hiermit biete ich meinen Webcoding-Service an. Falls Du auf der Suche nach einem schicken Webauftritt bist, oder einfach nur dein Design gecodet haben möchtest, dann kannst Du dich gerne bei mir melden. Ich erstelle Dir deine eigene Webseite, welche individuell auf dich angepasst ist und das auf Basis eines kleinen, aber gerechten Preises.
Über mich
Wer bin ich überhaupt, um so etwas anbieten zu können? Mein Name ist Mohamed und ich bin Auszubildender...
|
[Webdevelopment] Syuki-Development
02/13/2014 - Metin2 Trading - 3 Replies
http://i.epvpimg.com/I3JVb.png
http://i.epvpimg.com/BG2jf.png
http://i.epvpimg.com/tC0Pd.png
Feedback:
Du willst mich unterstützen?
|
[BIETE] Webdevelopment
04/29/2013 - Coders Trading - 1 Replies
Ich möchte hiermit einen Dienst anbieten, welcher sich um das gesamte Webdevelopment dreht.
- Templateanpassungen
- Html / Css (html5 & css3) 100% valide
- Php
- Homepage Servereinrichtung
- Cms Anpassungen
Sollte deine Art von Auftrag hier nicht aufgelistet sein, kannst du natürlich trotzdem anfragen.
|
All times are GMT +1. The time now is 00:34.
|
|