• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-09-2010, 15:20   #1 (permalink)
questions++;
 
Registriert seit: Jul 2010
Beiträge: 51
Smile Mehrere PHP Variablen per GET laden

Hallo Forum

Ich habe (wieder einmal) ein Problem und zwar habe ich eine .php Datei die 2 Variablen zurückgeben soll (habe mich genau an das Tutorial hier gehalten, nur dass halt Zahlen und keine Strings übertragen werden). Externe Klasse sieht auch ganz ähnlich aus wie im Tut, nur dass ich noch eine callback Funktion in der COMPLETE Funktion habe, die in der Main.as definiert wurde. Da es noch eine andere Klasse gibt die auch von einem PHP Skript eine Variable lädt und die ebenfalls dieselbe callback Funktion hat, habe ich in der callback Funktion einen Zähler eingebaut, der die eigentlichen Befehle (aufrufen einer 3ten Klasse samt mitgegebenen Parametern, eben die gerade geladenen PHP-Variablen) erst ausführt, wenn der Zähler gleich 2 ist.

Die Variablen werden vom PHP Skript eben, wie im Tut mit http_build_query($assoziativerArrayMitDaten) "verschlüsselt" und dann wie im Tut empfangen. Allerdings scheint die 3te Klasse nur die jeweils ersten Variablen zu bekommen (also von der Klasse die nur eine Variable ermittelt kriegt sie eben diese eine, von der Klasse die 2 ermittelt kriegt sie immer nur eine). Hab wieder einmal nicht die geringste Ahnung woran das liegt (mit AS scheint alles mehr oder weniger in Ordnung zu sein, da ja Variablen übergeben werden, halt immer nur die erste was das .php file betrifft: Das ist ziemlich sicher richtig, habe es mir mal so ausgeben lassen und Output ist var1=value1&var2=value2) Merkwürdig ist: wenn ich die Position der beiden Variablen (im assoziativen Array) vertausche, dann "funktioniert" das ganze auf einmal mit der anderen.

Hoffe es ist nur ein kleiner Fehler und ihr könnt mir ohne größere Umstände helfen.

SlideShowProject.zip für all jene die sich jetzt immer noch nicht auskennen oder einfach mal schauen wollen ^^

PS.: Ziel ist es dass der Endnutzer in das .php file Einstellungen schreiben kann (eben dur (duration/delay bis das nächste Bild angezeigt wird) und alphaPerFrame (wie schnell der AlphaFade vonstatten geht)) ohne dass das alles neu kompiliert und hochgeladen werden muss.
__________________
Ich spreche Deutsch, Englisch, Französisch, Latein und Russisch... nur mit AS will's nicht so ganz hinhauen.

Geändert von peat-ar (02-09-2010 um 15:21 Uhr)
peat-ar ist offline   Mit Zitat antworten
Alt 02-09-2010, 16:55   #2 (permalink)
Neuer User
 
Registriert seit: Oct 2009
Beiträge: 100
ich habe so etwas ähnliches gemacht, nur dass ich mir die daten als Array ausgeben lasse. Vielleicht hilft dir das ja. So hat es von anfang an gut geklappt.

PHP-Code:
/*
 * NetConnection herstellen
 */
        
private function einloggen() : void {
            
            
//verbinden mit amfphp
            
netConnection = new NetConnection();
            
netConnection.addEventListener(NetStatusEvent.NET_STATUSonStatus);
            
netConnection.connect(gatewayUrl);

            
Main.statusAnzeige.status_txt.text "";
            
callLogin();            
        }
    
/*
     * senden an PHP
     */
        
private function callLogin() : void {
            var 
responder Responder = new Responder(logonResultlogonFault);
            
netConnection.call("user.Login.logon"responderloginname.textpasswort.text);
        }

        private function 
onStatus(event NetStatusEvent) : void {
            
trace ("konnte nicht verbinden");
        }
    
/*
     * rueckgabe von php
     */
        
private function logonResult (data:Array):void {
            
Main.BENUTZERDATEN data;

            
// zuruecksetzen der Eingabefelder
            
loginname.text "";
            
passwort.text "";
        }
    
/*
     * Fehlerausgabe
     */
        
private function logonFault (data:Object):void {
            
trace (data);
            for (var 
key String in data){
                var 
value : * = data [key];
                
trace (key " = " value);
            }
            
        } 
und das php lädt bei mir halt eine mysql datenbank aus aber sonst ist alles gleich. wie du siehst habe ich den Fehlermeldung auch in den Arry gepackt, weil sonst die Typsicherheit eine Fehlermeldung bringt, aber so kann ich soviele daten übermitteln wie ich will.
PHP-Code:
<?php
class Login
{
    function 
logon($loginname$pwd)
    {
        
$db mysqli_connect ("host""user""password""database");
        
     if(!
$db){
         return 
'error beim verbinden';
         }        
          else{
          
$loginname mysqli_real_escape_string($db$loginname);
          
$pwd md5(mysqli_real_escape_string($db$pwd));
          }
        
      
$sql "SELECT loginname, pwd1 FROM tbl_registrierung WHERE loginname ='$loginname' AND pwd1 ='$pwd'";
        
      
$senden mysqli_query($db$sql);
      
      if(
mysqli_num_rows($senden) == 1){
      
          
$abfrage "SELECT * FROM tbl_registrierung WHERE loginname ='$loginname'";
          
$benutzerDaten mysqli_fetch_array(mysqli_query($db$abfrage));

        return 
$benutzerDaten;
        }
        else {
            
$fehlermeldung [0] = 'falscher Benutzername oder falsches Passwort';
        return 
$fehlermeldung;
        }
    }
}
?>
xact21 ist offline   Mit Zitat antworten
Alt 02-09-2010, 17:27   #3 (permalink)
questions++;
 
Registriert seit: Jul 2010
Beiträge: 51
Das ist aber mit AMFPHP und MySQL, wenn ich mich nicht ganz täusche, da das aber nur eine SlideShow werden sollte und Flash ansonsten auf dieser Seite nicht in Verwendung ist, würde ich lieber auf Zusatzmodule verzichten. Das kann doch eigentlich nicht soo schwer sein ein paar variablen zu übertragen oder?! Verstehe nicht was ich da falsch mache

Aber wenns überhaupt nicht klappt komm ich noch mal auf AMFPHP zurück
__________________
Ich spreche Deutsch, Englisch, Französisch, Latein und Russisch... nur mit AS will's nicht so ganz hinhauen.
peat-ar ist offline   Mit Zitat antworten
Alt 02-09-2010, 20:29   #4 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.297
In deinem Beispiel fehlt die config.php und deine countImages.php gibt nur eine Variable zurück nämlich "bilder=5", versteh nicht wo du da ne zweite Variable erwartest?
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker
_geo_ ist offline   Mit Zitat antworten
Alt 02-09-2010, 21:58   #5 (permalink)
questions++;
 
Registriert seit: Jul 2010
Beiträge: 51
Uh sorry, hab die config.php vergessen. So jetzt ist sie auf jeden Fall dabei countImages.php soll auch nur eine Variable an eine andere Klasse (PHPLoading) übergeben, das .php file, das ich vergessen habe, eben config.php soll 2 Variablen übergeben.

SlideShowProject.zip

Testen tu ich natürlich nicht in der Ordner-Dateien Konstellation. Ich gebe die swf-Datei in einen anderen Ordner am XAMPP Testserver, in denselben Ordner kommen auch die beiden .php Dateien, der img Ordner, usw
__________________
Ich spreche Deutsch, Englisch, Französisch, Latein und Russisch... nur mit AS will's nicht so ganz hinhauen.
peat-ar ist offline   Mit Zitat antworten
Alt 02-09-2010, 22:51   #6 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.297
Deine PHP.ini ist sehr wahrscheinlich "falsch" konfiguriert, er nimmt statt '&' als seperator '&amp'.

siehe: PHP: http_build_query - Manual (einfach inder Seite nach &amp suchen und du stolperst über Meldungen, dass der default Seperator falsch gesetzt ist).

Lösung:

a) default seperator in der php.ini setzen
Code:
[php.ini]
; The separator used in PHP generated URLs to separate arguments.
; Default is "&".
; arg_separator.output = "&amp;" ; das hier ist falsch !
arg_separator.output = "&" ; das hier ist richtig
oder

b) den default Seperator in der Funktion angeben
PHP-Code:
$returnString http_build_query($returnVars);
// ersetzen durch
$returnString http_build_query($returnVars'''&'); 
und schon funktionierts. Hattest also weder im AS noch im PHP nen wirklichen Fehler

lg
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker
_geo_ ist offline   Mit Zitat antworten
Alt 03-09-2010, 07:27   #7 (permalink)
questions++;
 
Registriert seit: Jul 2010
Beiträge: 51
DANKE, wenn das funktioniert (kanns jetzt grad leider nicht testen) hast du mein Leben (/meinen Ferialjob) gerettet

btw, ist da irgendein Grund weshalb man "&amp" als Seperator nehmen sollte? (Die schreiben das da ja wohl nicht rein um mich zu ärgern oder? ^^)
__________________
Ich spreche Deutsch, Englisch, Französisch, Latein und Russisch... nur mit AS will's nicht so ganz hinhauen.

Geändert von peat-ar (03-09-2010 um 07:29 Uhr)
peat-ar ist offline   Mit Zitat antworten
Alt 03-09-2010, 10:03   #8 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.297
&amp; is W3C valide das & nicht, wenn du das so als Link schreibst übersetzt es dein Browser von selbst in ein &.

Allerdings wenn du den Query String anderweitig verwenden willst gibts halt Probleme. Das &amp; kommt aus dem HTML-Kontext und wenn du den Link nicht in html einbaust musst du eben angeben, dass er "raw" rauskommen soll.

lg
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker
_geo_ ist offline   Mit Zitat antworten
Alt 03-09-2010, 12:29   #9 (permalink)
questions++;
 
Registriert seit: Jul 2010
Beiträge: 51
Eine Frage hab ich noch, ich habe die countImages.php Datei und die PHPLoading Klasse etwas verändert, sodass jetzt nicht mehr die Anzahl der Bilder übertragen wird und daraus in der PHPLoading Klasse ein Array mit den Namen generiert wird, sondern die Dateinamen der Bilder und diese dann in den eben genannten Array der PHPLoading Klasse gespeichert werden. PHP habe ich so umgeschrieben:

PHP-Code:
//Dateinamen werden in den Array $pics geladen
$returnVars = array();
$returnVars[0] = sizeof($pics);
for (
$j 0$j sizeof($pics); $j++)
{
    
array_push($returnVars$pics[$j]);
}
//Rückgabe 
Ausgabe ist dann 0=5&1=0.jpg&2=1.jpg&...&5=4.jpg
Das heißt mit der .php Datei müsste eigentlich alles in Ordnung sein.

In der PHPLoading Klasse steht jetzt:
PHP-Code:
//Klassendefinition usw
private function phpLoaded(evt:Event):void {
    
numPics evt.target.data[0];
    for (var 
i:uint 0numPicsi++) {
        
picPaths[0] = String("img/" evt.target.data[1]);
    }
    
callback();

Fehler komm mal wie üblich keine, allerdings ist die "SlideShow" jetzt zum Standbild (erstes Bild wird angezeigt und das wars), wie kann das sein?

btw: Gibt es eine einfachere Möglichkeit die Anzahl der Elemente des Arrays evt.target.data zu ermitteln (.length()?) als es ihm in einer eigenen Variable mitzugeben?
__________________
Ich spreche Deutsch, Englisch, Französisch, Latein und Russisch... nur mit AS will's nicht so ganz hinhauen.
peat-ar ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
php, php as3 variablen, variablen, variablen übergeben

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
mehrere mcs aus bibliothek laden und in einen moviclip laden shoei ActionScript 2 6 30-07-2010 16:35
mehrere Textfelder, mehrere variablen, 1 externer .xtx-file da_feilixx Flash MX 1 12-05-2007 23:34
Mehrere Texte in mehrere Textfelder Dynamisch laden! Neo0800 Flash MX 4 08-09-2004 11:54
mehrere swfs in mehrere targets laden sinai ActionScript 1 6 10-05-2002 16:58
mehrere variablen aus php nillez Flash und Datenbanken 2 22-11-2001 15:24


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele