0

わかった。このメソッドを使用して、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";

そして、複数の情報が次のように送信されますvar1=1&var2=2

しかし、PHPからAS3に配列を送信するにはどうすればよいですか?そして、PHPなどのwhile(array)のようなものでそれを処理する方法。

誰かが私を助けてくれることを願っています。

4

3 に答える 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).

于 2012-10-06T11:27:58.267 に答える
0

おそらく使用したいでしょうhttp_build_query。例:

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

出力します: key1=value1&key2=value2&key3=value3

于 2012-10-06T11:14:04.950 に答える
0

機密データ (認証: ログイン、パスワード) の場合は、JSON を使用できます。Flash Player 11 では、次のように JSON を使用します。

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

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

そしてPHPで:

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

Flash Player 10 以前では、次のライブラリが必要になります: http://code.google.com/p/as3corelib/

于 2012-10-06T14:42:05.573 に答える