Online Highscore Module
Übersicht

![]() |
FarbfinsternisBetreff: Online Highscore Module |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dieses Modul gestattet die einfache Implementation einer Online-Highscore in bestehende Projekte.
Das Archiv mit vorkompilierter Windows- und Linux-Version kann unter folgendem Link heruntergeladen werden. >> Highscore.mod V0.3 << (ca. 46kb)
In der Datei highscore_beispiel.bmx habe ich ein paar Zugriffe dokumentiert, falls Fragen auftreten helfe ich gern.
|
||
- Zuletzt bearbeitet von Farbfinsternis am Di, Sep 18, 2007 16:52, insgesamt einmal bearbeitet
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Update 0.20
SetScore() und RemoveScore() können Ihre Daten nun per POST anstatt wie bisher per REQUEST senden. Dies verhindert dass Daten per gefälschter URL eingetragen werden können. Der Aufruf der Funktion InitHighscore() hat sich geändert: Code: [AUSKLAPPEN] Rem current_version:String = Version des Spiels url:String = Host des PHP Scripts (Default = colorflow.de) php_script:String = Pfad zum PHP Script (Default = /pub/highscore/highscore.php) port:Int = HTTP Port (Default = 80) use_http_post:Byte = Flag zum aktivieren der POST-Geschichte (Default = True) EndRem InitHighScore(current_version:String, url:String, php_script:String, port:Int, use_http_post:Byte) Durch das umstellen auf POST hat sich auch das PHP Script geändert, muss also überschrieben werden. Download Source / Linux Modul / Win32 Modul (ca. 60kb) |
||
Farbfinsternis.tv |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
~Verschoben~
Auf Wunsch von Farbfinsternis. |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke D2006.
Obiges Update beinhaltet die highscore.php welche zwar per POST steuerbar ist, aber auch immer noch per REQUEST. Hier die aktualisierte Version die kein Request mehr akzeptiert. Code: [AUSKLAPPEN] <?php /* ============================================================= Highscores mit BMax austauschen ============================================================= */ extract($_REQUEST); extract($_POST); extract($_REQUEST); extract($_SERVER); include "mysql.php"; define("ACTION_GETSCORE" , 1); define("ACTION_SETSCORE" , 2); define("ACTION_KILLSCORE" , 3); define("ACTION_RESETTABLE" , 4); define("ACTION_COUNTSCORES" , 5); $ip = getenv("REMOTE_ADDR"); $datum = date("Y-m-d H:i:s"); $action = $_POST["action"]; $v = $_POST["v"]; $user = $_POST["user"]; $score = $_POST["score"]; $sc = $_POST["sc"]; switch($action) { /* --------------------------------------------------------- Highscore ausgeben --------------------------------------------------------- */ case ACTION_GETSCORE : $query = "SELECT id, datum, user, score, version FROM ".$tblp."scores WHERE version='$v' ORDER BY score DESC"; if($l > 0) $query.= " LIMIT $f, $l"; $result = MYSQL_QUERY($query); while($row = MYSQL_FETCH_OBJECT($result)) { echo $row->id."\n"; echo $row->user."\n"; echo $row->score."\n"; echo $row->datum."\n"; } break; /* --------------------------------------------------------- Neuen Score eintragen --------------------------------------------------------- */ case ACTION_SETSCORE : $query = "INSERT INTO ".$tblp."scores ( datum, user, ip, score, version ) VALUES ( '$datum', '$user', '$ip', '$score', '$v')"; $result = MYSQL_QUERY($query); if($result){ echo "success\n"; }else{ echo "failed\n"; } break; /* --------------------------------------------------------- Score löschen --------------------------------------------------------- */ case ACTION_KILLSCORE : $query = "DELETE FROM ".$tblp."scores WHERE id=$sc"; $result = MYSQL_QUERY($query); if($result){ echo "success\n"; }else{ echo "failed\n"; } break; /* --------------------------------------------------------- Tabelle zurücksetzen --------------------------------------------------------- */ case ACTION_RESETTABLE : $query = "TRUNCATE TABLE `".$tblp."scores`"; $result = MYSQL_QUERY($query); if($result){ echo "success\n"; }else{ echo "failed\n"; } break; /* --------------------------------------------------------- Anzahl der Scores zurückgeben --------------------------------------------------------- */ case ACTION_COUNTSCORES : $query = "SELECT id FROM ".$tblp."scores WHERE version=$v"; $result = MYSQL_QUERY($query); echo MYSQL_NUM_ROWS($result); break; } ?> |
||
Farbfinsternis.tv |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sehr schön ![]() Allerdings habe ich darin vergeblich nach einem Modul gesucht. Wird das noch in der nächsten Version angepasst? |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Öhm? Das Archiv beinhaltet den Sourcecode sowie die kompilierten Module für Windows und Linux. Der Scope lautet /makegame/highscore. Zu importieren über makegame.highscore
Das erste Posting beinhaltet noch die Include-Version. Diese pflege ich aber nicht mehr, weshalb ich D2006 bat den Thread zu verschieben. Ich habe das Archiv aktualisiert und es kann widerum unter http://www.colorflow.de/pub/hi...d.0.20.zip inkl. Source für Linux und Windows heruntergeladen werden. Das Archiv beinhaltet:
|
||
Farbfinsternis.tv |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Stimmt, mein Fehler.
Weil der obere Link im ersten Post die Module nicht enthält. Sorry. Auf jeden Fall sehr schön ![]() Sollte nicht wenige der grundlegenden Probleme "lösen" dank des kompletten Umfanges dessen was dafür benötigt wird. Danke |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die neue Version 0.3 ist verfügbar, alle Informationen und Download-Links befinden sich im ersten (edititierten) Post. | ||
Farbfinsternis.tv |
m a j o r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm naja ich würde blitzmax noch einige checksums senden lassen... habe auch schon mal eine online-highscore erstellt. ist halt bissle sicherer..
kann sein dass ich mich jetzt irre aber was wäre wenn ein user im programm folgenden namen eintippt: x','127.0.0.1','99','7');DROP TABLE 'rz_';-- wäre sinnvoll vllt im php script alle ' und(?) \ zu blockieren... (das natürlich auch schon client-seitig) |
||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
m a j o r hat Folgendes geschrieben: hmm naja ich würde blitzmax noch einige checksums senden lassen... habe auch schon mal eine online-highscore erstellt. ist halt bissle sicherer..
kann sein dass ich mich jetzt irre aber was wäre wenn ein user im programm folgenden namen eintippt: x','127.0.0.1','99','7');DROP TABLE 'rz_';-- wäre sinnvoll vllt im php script alle ' und(?) \ zu blockieren... (das natürlich auch schon client-seitig) Sicher gibt es noch einiges an der Sicherheit zu feilen, Dein Beispiel mit dem Namen hätte aber keinerei Auswirkung. |
||
Farbfinsternis.tv |
m a j o r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm aso das hab ich grad nur schnell zusammen getippt ohne viel auf den blitzmax code ablauf zu achten.. aber wenn ich beispielsweise die eintrag-funktion mit diesem code aufrufen würde würde sich aus dem query
$query = "INSERT INTO ".$tblp."scores ( datum, user,ip,score,version ) VALUES ( '$datum', '$user', '$ip', '$score', '$v')"; $query = "INSERT INTO ".$tblp."scores ( datum, user,ip,score,version ) VALUES ( '$datum', 'x','127.0.0.1','99','7');DROP TABLE 'rz_';-- , '$ip', '$score', '$v')"; ergeben!? was table rz__ wegwerfen würde. oder hab ich jetzt hier nen denkfehler? |
||
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
*majorrechtgeb*
*hust* http://de.wikipedia.org/wiki/SQL-Injektion *hust* |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group