PHP Daten von Flash an php übergeben

unso

Well-known member
ID: 242304
L
12 Juni 2006
2.024
151
Hi,

ich habe folgendes Problem:
Ich habe ein Rennspiel, dort wird die Gesamtzeit für alle Runden gemessen.
Diese Gesamtzeit möchte ich in der Datenbank speichern. Ich weiß, dass dies nur über php funktioniert, nur leider weiß ich nicht, wie ich die Variable von Flash in php bekomme. Von php nach SQL ist dann kein Problem mehr.

Würde mich über Hilfe freuen.
 
Moin.

Lass Flash ein PHP-Script aufrufen. Via GET- oder POST-Parameter kannst du Daten übergeben.
 
Genau wie Hacker beschrieben.

Kennst Du den geturl Befehl in Actionscript?

schaut dann wie folgt aus:
geturl("datei.php?zeiten="+zeit);

oder doppelt gut über ein LoadVars-Objekt.

Zum Beispiel wie folgt:
Code:
v = new LoadVars();

v.onLoad = function (OK)
{
  if (OK)
  {
     // Zum Beispiel ein OK ausgeben oder Schauen welcher Platz das ist 
  }
}

v.load("datei.php?zeit="+zeit);
 
Schomal danke. Nur leider bin im Bereich Flash-Programmierung noch ziemlich neu und komme deswegen trotz eurer Tipps nicht wirklich weiter
Hier meine Funktion für die Gesamtzeit.
Code:
function setTimes() {
	timeElapsed = getTimer()-_root.initialTime;
	milliseconds = timeElapsed;
	seconds = Math.floor(milliseconds/1000);
	minutes = Math.floor(seconds/60);
	minutesTXT = minutes;
	secondsTXT = seconds-minutes*60;
	tensTXT = Math.round((milliseconds-seconds*1000)/10);
	if (minutesTXT<10) {
		minutesTXT = "0"+minutesTXT;
	}
	if (secondsTXT<10) {
		secondsTXT = "0"+secondsTXT;
	}
	if (tensTXT<10) {
		tensTXT = "0"+tensTXT;
	}
	_root.totalTimeTXT = minutesTXT+"."+secondsTXT+"."+tensTXT;
}
Diese möchte ich nun an php übergeben.
 
Hi,

Ich kenne mich mit Flash auch nicht aus, aber du musst doch eigentlich nur den Wert aus

Code:
_root.totalTimeTXT = minutesTXT+"."+secondsTXT+"."+tensTXT;

übergeben?
 
Ja, wie Renegade sagt.

Das Prob, das Hacker angesprochen hat, kannste aber umgehen, mit einer Hash-Kontrolle.

Dann rufste sowas auf wie zum Beispiel
Code:
v = load(datei.php?hash=ufsajfiojf89uh4jfhnsd0fwh34rhjfnjfnisehfr349w8&zeit="+_root.totalTimeTXT);

Und dann ist das ziemlich sicher.
Außer jemand errät diesen Schmarrn, den ich oben geschrieben habe (was natürlich möglich ist).

Grüße
 
Außer jemand errät diesen Schmarrn, den ich oben geschrieben habe (was natürlich möglich ist).
Oder jemand installiert LiveHTTPHeaders oder einen einfachen Network-Sniffer und protokolliert deinen 'sicheren' Hash einfach mit ;).

Oder dekompiliert das SWF-File, oder, oder, ...
 
Das Prob, das Hacker angesprochen hat, kannste aber umgehen, mit einer Hash-Kontrolle.
Und womit willstde hashen? Wenn der Quellcode der Hashfunktion in Flash is, hat der User ihn und kann beliebige Daten hashen und somit legitimieren.
 
Oh man, jetzt wirds langsam kompliziert hier. Und dabei läufts bei mir leider immer noch nicht. Ich würde mich erstmal freuen, wenn ich den Wert überhaupt in die Datenbank bekomme. Danach mache ich mir dann Gedanken wegen den fakeversuchen. Ich könnte auch jemandem die .fla Datei schicken, falls sich jemand die Zeit nehmen würde ;)
 
Danach mache ich mir dann Gedanken wegen den fakeversuchen.
Du hast immer zuerst zu überlegen und dann erst Code zu schreiben. Andersrum gehts sicher schief.

Überdenke erstmal dein Konzept, bevor du es mit allen Mitteln unbedingt implementieren willst. Stellst du hinterher fest, dass ein Fehler drin is, war die ganze Arbeit umsonst.

Also: Erst Gedanken machen, dann implementieren ;)
 
Könnte man das Problem der Fakeversuche dadurch reduzieren, dass nur ein 1maliger Aufruf des Games für jeden User möglich ist?
Dies wäre ja dann leicht umzusetzten und hätte auch keine Auswirkungen auf meinen Verwendungszweck
 
nichtmal im Ansatz :ugly:
solange du keine Ahnung hast, wie das alles funktioniert, wirst du auch keine Lösung finden btw. gibt es dafür auch keine, alles ist knackbar mit genug Zeit
 
Oder jemand installiert LiveHTTPHeaders oder einen einfachen Network-Sniffer und protokolliert deinen 'sicheren' Hash einfach mit ;).

Oder dekompiliert das SWF-File, oder, oder, ...

Das ist natürlich richtig, daran hab ich noch gar nicht gedacht :oops:

Aber mit dem LiveHTTPHeader-Reader würde man da auch folgendes zu Gesicht bekommen...? Flash-PHP-Connection

Anderseits kannst Du auch mit Sessions, bzw. einem Loginsystem, arbeiten, sodass nur der, der sich über Flash eingeloggt hat, auch Zugriff auf die Datei bekommt. Wenn Du noch dazu Logfiles registrierst, weißt Du wer wann was in die DB geschrieben hat.
 
Aber mit dem LiveHTTPHeader-Reader würde man da auch folgendes zu Gesicht bekommen...? Flash-PHP-Connection
Ich kann dir zwar nicht deine Frage bezgl. LiveHTTPHeader-Reader beantworten, aber Wireshark (z.B.) fängt alle Pakete vom Client zum Server ab. Mag toll sein, vorher ein Passwort zu senden, aber das kann ich genauso einfach wie den vorher vorgeschlagenen Hash abfangen.

Sicher ist nur, das Spiel auf dem Server zu spielen.
 
Aber jeder Flashmovie ist doch Client-seitig?!?
Bei Facebook und so sind die Dinger doch auch sicher...

Versteh ich nicht...
 
Wären die Dinger nicht sicher, würden sich die ganzen Leute ja zB bei FarmVille diese FV-Dollar nicht kaufen, sondern ercheaten. Um den einen Riegel vorzuschieben haben die Spieleersteller doch sicher eine Sicherung eingebaut.

hm.. find das Thema total interessant, weil ich immer der Ansicht war, dass die Kommunikation zw Flash und PHP relativ sicher ist...
 
Wären die Dinger nicht sicher, würden sich die ganzen Leute ja zB bei FarmVille diese FV-Dollar nicht kaufen, sondern ercheaten. Um den einen Riegel vorzuschieben haben die Spieleersteller doch sicher eine Sicherung eingebaut.
moment mal, das sind doch komplett andere Thematiken.
Bei FarmVille führt der Client eine Aktion aus (Erdbeeren pflanzen) und sendet dies dem Server, der kann nun wiederrum prüfen, ob der User genug Geld hat und sollte dies nicht der Fall sein, sendet der Server zurück, dass diese Aktion nicht erlaubt ist.
Der Client hat also keinerlei große Logik und fragt nur den Server, ob er Aktionen ausführen darf. Bei dem Rennspiel ist es jedoch so, dass der Client alles macht und am Schluss nur ein Ergebnis zum Server sendet.

hm.. find das Thema total interessant, weil ich immer der Ansicht war, dass die Kommunikation zw Flash und PHP relativ sicher ist...
wie kommst du auf solch eine Idee :roll:
Alles was Flash sendet kann man genauso gut manuell senden, es baut auf HTTP auf, da ist es egal, wo der HTTP-Request herkommt und ob er zwischendurch modifiziert wird.