Zurück   Flashforum > Flash und Server > PHP und MySQL

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-01-2011, 11:48   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2011
Beiträge: 4
Question Problem bei MySQL/PHP Kommunikation auf dem Server

Hallo,

ich habe folgendes Problem:

Ich habe ein kleines Flashgame mit Highscoresystem gebastelt. Die Usernamen und die score Punkte werden in einer MySQL Datenbank gespeichert und dann auf der "Highscore Seite" in Flash wieder abgerufen.

Das funktioniert auch wunderbar wenn ich das Game lokal starte und spiele (Datenbank ist online).

Jetzt habe ich das Game hochgeladen und nun funktioniert die Highscorefunktion nicht mehr. D.h. wenn man auf den "submit score" Button klickt passiert nichts mehr (der Highscore frame wird nicht angezeigt und der score wird auch nicht in die Datenbank geschrieben)

Weis jemand was der Fehler sein könnte? Vielleicht irgendwelche Zugriffsberechtigungen?

Vielen Dank schonmal =)

MfG AccepT
AccepT2k11 ist offline   Mit Zitat antworten
Alt 20-01-2011, 12:23   #2 (permalink)
bmu
Neuer User
 
Benutzerbild von bmu
 
Registriert seit: Jan 2011
Beiträge: 57
Ohne Code Sample wird dir da wohl keiner helfen können, schätze ich mal. Wenn die Tabelle nicht mal angezeigt wird, ist es wohl ein lokales Problem.
bmu ist offline   Mit Zitat antworten
Alt 20-01-2011, 12:38   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2011
Beiträge: 4
also hier ist der Code für den URLRequest in AS3:
PHP-Code:
// Btn listener
submitGameOver_btn.addEventListener(MouseEvent.CLICKbtnDown);
// Btn Down function
function btnDown(event:MouseEvent):void 
{    
    
// Assign a variable name for our URLVariables object
    
var variables:URLVariables = new URLVariables();
    
// Build the varSend variable
    // Be sure you place the proper location reference to your PHP config file here
    
var varSend:URLRequest = new URLRequest("http://www.modrow-coaching.de/flashgame/getHighscore.php");
    
varSend.method URLRequestMethod.POST;
    
varSend.data variables;
    
// Build the varLoader variable
    
var varLoader:URLLoader = new URLLoader;
    
varLoader.dataFormat URLLoaderDataFormat.VARIABLES;
    
varLoader.addEventListener(Event.COMPLETEcompleteHandler);
    
            
variables.username username_txt.text;
            
variables.highScore score;
            
variables.sendRequest "updateHighscore";    
            
// Send the data to the php file
            
varLoader.load(varSend);

    
// When the data comes back from PHP we display it here        
    
function completeHandler(event:Event):void
    
{        
        
userOne event.target.data.var1;
        
scoreOne event.target.data.var2;        
        
        
userTwo event.target.data.var3;
        
scoreTwo event.target.data.var4;
        
        
userThree event.target.data.var5;
        
scoreThree event.target.data.var6;    
        
        
userFour event.target.data.var7;
        
scoreFour event.target.data.var8;
        
        
userFive event.target.data.var9;
        
scoreFive event.target.data.var10;
        
        
userSix event.target.data.var11;
        
scoreSix event.target.data.var12;
        
        
userSeven event.target.data.var13;
        
scoreSeven event.target.data.var14;    
        
        
userEight event.target.data.var15;
        
scoreEight event.target.data.var16;
        
        
userNine event.target.data.var17;
        
scoreNine event.target.data.var18;
        
        
userTen event.target.data.var19;
        
scoreTen event.target.data.var20;    
                
        
gotoAndStop(10);
    
    }    
    
    

und die php/mysql Behandlung sieht so aus:
PHP-Code:
<?php

if (($_POST['sendRequest'] == "updateHighscore") || ($_POST['sendRequest'] == "getHighscore")) 
{
    
$server "xxxx"
    
$user "xxx";
    
$pass "xxx";
    
$datenbank "xxxx";
    
$verbindung mysql_connect($server$user$pass)
        or die (
"Es konnte keine Verbinung zum Server aufgebaut werden");
    
$db mysql_select_db($datenbank,$verbindung)
        or die (
"Fehler beim verbinden der Datenbank");    
        
    
$counter 0;
    
$highScoreList = array();
    
$usernameResult = array();
    
    
    if ((
$_POST['sendRequest'] == "updateHighscore")) 
    {
        
$username $_POST['username'];
        
$score $_POST['highScore'];
                
        
$updateHighscore =     "INSERT INTO highscores (                username, 
                                                                    score) 
                                                        
                                                VALUES (    '$username',                                                    
                                                            '$score')"
;                                                                
        
mysql_query($updateHighscore);
    }
        
    
$sql "SELECT * FROM highscores ORDER BY score DESC";
    
$query mysql_query($sql);        
    
    while(
$row mysql_fetch_assoc$query ))
    {
        
        
$highScoreList[$counter] = $row["score"];
        
$usernameResult[$counter] = $row["username"];
        
        
$counter++;
    }
    
    
    print 
"var1=$usernameResult[0]";
    print 
"&var2=$highScoreList[0]";
    
    if(
$usernameResult[1] != null)
    {
        print 
"&var3=$usernameResult[1]";
        print 
"&var4=$highScoreList[1]";
    }
    
    if(
$usernameResult[2] != null)
    {
        print 
"&var5=$usernameResult[2]";
        print 
"&var6=$highScoreList[2]";
    }
    if(
$usernameResult[3] != null)
    {
        print 
"var7=$usernameResult[3]";
        print 
"&var8=$highScoreList[3]";
    }
    if(
$usernameResult[4] != null)
    {
        print 
"&var9=$usernameResult[4]";
        print 
"&var10=$highScoreList[4]";
    }
    if(
$usernameResult[5] != null)
    {
        print 
"&var11=$usernameResult[5]";
        print 
"&var12=$highScoreList[5]";    
    }
    if(
$usernameResult[6] != null)
    {
        print 
"&var13=$usernameResult[6]";
        print 
"&var14=$highScoreList[6]";
    }
    if(
$usernameResult[7] != null)
    {
        print 
"var15=$usernameResult[7]";
        print 
"&var16=$highScoreList[7]";
    }
    
    if(
$usernameResult[8] != null)
    {
        print 
"&var17=$usernameResult[8]";
        print 
"&var18=$highScoreList[8]";
    }
    if(
$usernameResult[9] != null)
    {
        print 
"&var19=$usernameResult[9]";
        print 
"&var20=$highScoreList[9]";        
    }
}
und wie gesagt es funktioniert einwandfrei solange ich es nicht auf den server hochlade.
AccepT2k11 ist offline   Mit Zitat antworten
Alt 20-01-2011, 13:45   #4 (permalink)
.ad
 
Benutzerbild von bobby
 
Registriert seit: Jun 2001
Ort: zürich
Beiträge: 10.731
Das debugging würde wohl mal so ablaufen:
1. funktioniert das php auf dem Server, d.h. php direkt aufrufen und einmal festdefinierte Werte in die Datenbank reinschreiben
2. wird das php script wirklich aus flash aufgerufen - oder ist da schon ein Knopf drin.
3. Versuchs mal mit einem relativen url -Aufruf
PHP-Code:
 var varSend:URLRequest = new URLRequest("getHighscore.php"); 
__________________
http://www.radiocity.ch
bobby ist offline   Mit Zitat antworten
Alt 20-01-2011, 14:50   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2011
Beiträge: 4
danke für die antwort!

1. und 3. hatte ich schon probiert: php funktioniert und relativer pfad funktioniert nicht :/

Ich weis nicht genau was du mit 2. meintest!? das php Script wird nach "CLICK" auf den Button "submitGameOver_btn" aufgerufen und der befindet sich in Flash

Also er connected sich auch gar nicht zur Datenbank und er schreibt nichts rein

Wie kann das denn sein, dass das lokal funktioniert und auf dem server dann nicht mehr? Bin echt ratlos...
AccepT2k11 ist offline   Mit Zitat antworten
Alt 20-01-2011, 15:33   #6 (permalink)
.ad
 
Benutzerbild von bobby
 
Registriert seit: Jun 2001
Ort: zürich
Beiträge: 10.731
bin mir jetzt nicht ganz sicher wie bei Dir der Stand der Dinge ist...

- wird das php beim Klick in Flash wirklich aufgerufen? das kannst Du testen indem Du Dir mit dem mail()-Befehl ein mail zusendest.

Zitat:
Also er connected sich auch gar nicht zur Datenbank und er schreibt nichts rein
Das hättest Du ja bei Punkt 1) testen können, bzw. wenn das php bei direktem Aufruf im Browser entsprechend testest, sollte ja auch die datenbankverbindung geprüft werden können.

Falls a) das php-script aus Flash korrekt aufgerufen wird und b) in diesem Fall eine Datenbankabfrage fehlerhaft ist, kannst Du ja auchv ersuchen Dir den mysql_error() per mail zuzusenden.
__________________
http://www.radiocity.ch
bobby ist offline   Mit Zitat antworten
Alt 21-01-2011, 10:24   #7 (permalink)
Neuer User
 
Registriert seit: Jan 2011
Beiträge: 4
Fragt mich nicht wieso - ich habe NICHTS verändert und auf einmal funktioniert es.. einfach so
^^
hoffe mal das bleibt jetzt auch so =)

vielen Dank für die Tipps!
AccepT2k11 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
datenbank, mysql, php, problem, server

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Kommunikation swf Banner auf AD-Server hansdampfinnot Flash CS3 Professional 1 18-07-2010 16:29
Problem mit Kommunikation Flash PHP MySQL drapetaonline Flash und Datenbanken 3 06-03-2006 14:44
Eigener Win2003 Server: mysql server und phpmyadmin: kann kein PW setzten! Help.. WurstKuchen Am Rande 24 06-09-2005 17:18
kommunikation zum MySql-Server haut irgendwie nicht hin falsanu Flash und Datenbanken 2 18-11-2004 09:21
Kommunikation mit dem Server per AS dmorber Flash Media Server 3 28-09-2004 09:05


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:26 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele