0

Okay. I am using this method to get informations from PHP.

AS3:

function login_check (e:MouseEvent):void {

                    /*
                    check fields before sending request to php
                    */

                    if (login_username.text == "" || login_password.text == "") {

                        /*
                        if username or password fields are empty set error messages
                        */

                        if (login_username.text == "") {

                        login_username.text = "Enter your username";

                        } 

                        if (login_password.text == "") {

                        login_password.text = "Enter your password";

                        }

                    } else {

                        /*
                        init function to process login
                        */

                        login_process();

                    }

                }

                /*
                function to process our login
                */

                function login_process ():void {

                    /*
                    variables that we send to the php file
                    */

                    var phpVars:URLVariables = new URLVariables();

                    /*
                    we create a URLRequest  variable. This gets the php file path.
                    */

                    var phpFileRequest:URLRequest = new URLRequest("php/controlpanel.php");

                    /*
                    this allows us to use the post function in php
                    */

                    phpFileRequest.method = URLRequestMethod.POST;

                    /*
                    attach the php variables to the URLRequest
                    */

                    phpFileRequest.data = phpVars;

                    /*
                    create a new loader to load and send our urlrequest
                    */

                    var phpLoader:URLLoader = new URLLoader();
                    phpLoader.dataFormat = URLLoaderDataFormat.VARIABLES;           
                    phpLoader.addEventListener(Event.COMPLETE, login_result);

                    /*
                    now lets create the variables to send to the php file
                    */

                    phpVars.systemCall = "login_check";
                    phpVars.login_username = login_username.text;
                    phpVars.login_password = login_password.text;

                    /*
                    this will start the communication between flash and php
                    */

                    phpLoader.load(phpFileRequest);

                }

                /*
                function to show the result of the login
                */

                function login_result (event:Event):void {

                    /*

                    this autosizes the text field

                    ***** You will need to import flash's text classes. You can do this by: 

                    import flash.text.*;

                    */

                    login_result_text.autoSize = TextFieldAutoSize.LEFT;

                    /*
                    this gets the output and displays it in the result text field
                    */

                    if (event.target.data.login_result == "1") {
                        login_result_text.text = "Login In...";
                        this.gotoAndStop("login_loggedin");
                    }else{
                        login_result_text.text = "Username and password doesn't match.";
                    }

                }

PHP:

print "login_registration_status=1";

And multiple informations are sent like var1=1&var2=2

But, how can I send a array from PHP to AS3? And how to handle it with a like while(array) from PHP or something.

Hope someone can help me..

3 Answers 3

1

Try something like:

<?php print 'arr=1,2,3&var1=123&var2=456'; ?>

Note that to generate such a string with PHP's http_build_query.

Then, in AS3, you split the value by comma:

var data:Array = arr.split(',');

Otherwise, you could try using JSON instead or XML to transmit data (instead of serializing in the URI format).

Sign up to request clarification or add additional context in comments.

Comments

0

You probably want to use http_build_query. Example:

echo http_build_query(array(
                'key1' => 'value1',
                'key2' => 'value2',
                'key3' => 'value3'));

Will output: key1=value1&key2=value2&key3=value3

1 Comment

That's the same thing as var1=1&var2=2, OP would want something like arr[]=1&arr[]=2 but I don't know if AS3 will interpret it correctly...
0

You could, and should in case of sensitive data (authentication: login, password) use JSON. In Flash Player 11 you use JSON like this:

var arrayToSend:Array = [ 'abc', 'def', [1, 2, 3] ];

var JSONArrayToSend:String = JSON.stringify ( arrayToSend );
var arrayReceived:Array = JSON.parse ( JSONArrayReceived );

And in PHP:

$JSONArrayToSend = json_encode( $arrayToSend );
$arrayReceived = json_decode( $JSONArrayReceived );

In Flash Player 10 and older you will need this library: http://code.google.com/p/as3corelib/

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.