Online-Highscore mittels PHP

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

faggie

Betreff: Online-Highscore mittels PHP

BeitragFr, Jun 16, 2006 13:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Ich programmiere gerade ein kleines Spiel mit Online-Highscore. Nur weiß ich leider nicht so wirklich wie ich das mit dem Highscore anstellen soll.

Ich will das ganze so haben: Mein Spiel ruft eine URL auf (z.B. http://bla.de/eintragen.php?punkte=1149) und mein PHP-Script trägt die Daten in meine MySQL-Datenbank ein. Von meinem Spiel aus kann man dann die neue Highscore-Liste ingame anzeigen lassen.

Das Eintragen wollte ich erst wie folgt realisieren:
Code: [AUSKLAPPEN]
Execfile "http://bla.de/eintragen.php?punkte=1149"


Aber durch diesen Befehl öffnet sich der Web-Browser und das will ich ja nicht.

Wie könnte man das noch machen?

Wie kann ich dann die Highscore-Liste abrufen?


Gruß
faggie

Lunatix

BeitragFr, Jun 16, 2006 13:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit TCP befehlen, müsste das gehen, mein ich.
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Schnittlauch

Unkraut

BeitragFr, Jun 16, 2006 13:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Jepp, denk ich auch.
Schau dir mal den code von irgendeinem Webbrowser im Codearciv an.
Das sollte dir helfen,
Ich wars nicht.

faggie

BeitragFr, Jun 16, 2006 13:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke! Very Happy
 

LaiKiam

BeitragFr, Jun 16, 2006 14:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi faggie,
ich denke, du suchst soetwas:

BB:
Code: [AUSKLAPPEN]

Function text_absenden()
   
   daten$="p="+playername$
   daten$=daten$+"&score="+highscore

   tcp=OpenTCPStream("127.0.0.1",80)
      WriteLine tcp,"POST /" + "script.php HTTP/1.0"
      WriteLine tcp,"Host: " + "127.0.0.1"
      WriteLine tcp, "Content-type: application/x-www-form-urlencoded"
      WriteLine tcp, "Content-length: " + Len(daten$)
      WriteLine tcp, "Connection: close"
      WriteLine tcp,""
      WriteLine tcp, daten$
   CloseTCPStream tcp

End Function


PHP:
Code: [AUSKLAPPEN]

<?php
  include '_main.include.php';
  $playername=$_POST['p'];
  $score=$_POST['score'];
 
  $playername=trim($playername);
  $playername=str_replace(";"," ",$playername);
  $playername=str_replace("--"," ",$playername);
 
  $score=trim($score);
  $score=str_replace(";"," ",$score);
  $score=str_replace("--"," ",$score);
 
  If ($playername<>"")
  {
    $result = mysql($dbn,"INSERT INTO highscore (player,score) values ('$playername','$score')");
    if (!result) echo "Keine Verbindung zur Datenbank";
  }
?>


Zusätzlich solltest du die Highscoredaten vor dem absenden verschlüsseln und innerhalb des PHP-Scriptes wieder entschlüsseln, sonst hast du nicht lange Spass an der Highscoreliste (Cheater)...

LaiKiam
Flamt ruhig, ich mag Kritik, den die verbessert den Code Wink

Kryan

BeitragFr, Jun 16, 2006 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
solltest aber mit MD5-Verschlüsselung hinsichtlich des User-Agents arbeiten Wink

WriteLine tcp, "User-Agent: "+MD5$("abc"+name$+"def"+passwort$+"ghe")

und der PHP-COde:

if ($_SERVER['HTTP_USER_AGENT']==MD5("abc".$name."def".$passwort."ghe"))
...trage in die Datenbank ein...

edit: natürlich gibt es keine MD5-Funktion in BlitzBasic von haus aus...deshalb solltest du mal auf www.blitzbasic.com danach suchen Razz
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

PowerProgrammer

BeitragFr, Jun 16, 2006 14:29
Antworten mit Zitat
Benutzer-Profile anzeigen
MD5 gibts hier auch im Codearchiv.
https://www.blitzforum.de/foru...php?t=1382

Außerdem reicht es kaum, das nur mit nem User-Agent zu sichern. Es gibt schließlich diese Sniffer oder wie die heißen...
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter!

Kryan

BeitragFr, Jun 16, 2006 14:31
Antworten mit Zitat
Benutzer-Profile anzeigen
und was sollen diese Sniffer bringen??

um noch eins klarzustellen: es gibt KEINE 100%-super-tolle Lösung (zumindest nicht eine, die der PC machen kann)
am besten ist es so:
man macht eine MD5-Verschlüsselung des User-Agents
und alles was gecheatet aussieht wird aus der Datenbank aussortiert (<-menschliche Fähigkeit)
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

PowerProgrammer

BeitragFr, Jun 16, 2006 14:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Da kann man Netzwerkstreams auslesen und verändern.
Ich kenn mich da nicht so aus...
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter!

Bud

BeitragFr, Jun 16, 2006 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Joa kann man, aber wenn der MD5 Hash nicht zu den restlichen daten passt (man kann ja noch mehr zeichen in den string tun, der nach MD5 konvertiert wird) wird der highscore nciht eingetragen.

faggie

BeitragFr, Jun 16, 2006 23:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Unglaublich hier.

Obwohl ich schon sagte, dass ich nun alleine weiter weiß, wird trotzdem noch so viel gepostet. Ach, einfach toll hier. Surprised

Ich habe das nun so gemacht: Das Spiel ruft eine URL auf. Diese beinhaltet Name, Punkte, Code. Der Code setzt sich aus der Anzahl der Punkte in Verbindung einer Rechenaufgabe zusammen. Das PHP-Script braucht nur noch überprüfen, ob der Code und die Anzahl der Punkte übereinstimmen.

Ich glaube ich setze gleich mal mein kleines Spiel ins Projekte-Forum.

Gruß
Christian

Kryan

BeitragSa, Jun 17, 2006 13:30
Antworten mit Zitat
Benutzer-Profile anzeigen
war das "einfach toll hier Surprised " ironisch gemeint??

was für ein Spiel soll das überhaupt werden??
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group