There were many types of server side scripting environment out there. For example: there's php, asp, asp.net etc. But I choose php most of the time because its free and it's easy to use.
Let's look at the scripts below:
I am using a flash file to communicate to the server side script.
package com.phppostget { import com.zcs.net.NetConnect; import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.net.NetConnection; import flash.net.URLVariables; import flash.text.TextField; public class Main extends Sprite { //This is a class that I had written to simplify //the connection to a server side script private var tempConnect:NetConnect; //Create pointers to the movieclips and textfield on Stage public var _send_mc:MovieClip = new MovieClip(); public var _btn_mc:MovieClip = new MovieClip(); public var _value1_txt:TextField = new TextField(); public var _value2_txt:TextField = new TextField(); public var _value3_txt:TextField = new TextField(); public var _input1_txt:TextField = new TextField(); public var _input2_txt:TextField = new TextField(); public var _input3_txt:TextField = new TextField(); public var _url_txt:TextField = new TextField(); public var _result_txt:TextField = new TextField(); public function Main(){ //Setup all the pointers to the respective movieclips and textfields //and setup the listeners to all these Movieclips and buttons _btn_mc = this.getChildByName("btn_mc"); _btn_mc.gotoAndStop(1); _btn_mc.addEventListener(MouseEvent.CLICK, changeMethodEvent); _send_mc = this.getChildByName("send_mc"); _send_mc.addEventListener(MouseEvent.CLICK, sendDataEvent); _value1_txt = this.getChildByName("value1_txt") as TextField; _value2_txt = this.getChildByName("value2_txt") as TextField; _value3_txt = this.getChildByName("value3_txt") as TextField; _input1_txt = this.getChildByName("input1_txt") as TextField; _input2_txt = this.getChildByName("input2_txt") as TextField; _input3_txt = this.getChildByName("input3_txt") as TextField; _url_txt = this.getChildByName("url_txt") as TextField; _result_txt = this.getChildByName("result_txt") as TextField; } //Simple listner to toggle the POST and GET state //upon clicking on the Movieclip private function changeMethodEvent(event:Event):void{ if(_btn_mc.currentFrame == 1){ _btn_mc.gotoAndStop(2); }else{ _btn_mc.gotoAndStop(1); } } //Sending the values to the server side script //upon clicking on the Send button private function sendDataEvent(event:Event):void{ var tempXMLStr:String = "<"+_input1_txt.text+">" + _value1_txt.text + ""+_input1_txt.text+">"; tempXMLStr += "<"+_input2_txt.text+">" + _value2_txt.text + ""+ _input2_txt.text +">"; tempXMLStr += "<"+_input3_txt.text+">" + _value3_txt.text + ""+ _input3_txt.text +">"; var tempXML:XML = new XML(tempXMLStr); tempConnect = new NetConnect(_url_txt.text, tempXML, Number(_btn_mc.currentFrame)); tempConnect.addEventListener(NetConnect.PARSE_NET_OK, showResultEvent); } //When the server side script returns a result, show it on the result textfield private function showResultEvent(event:Event):void{ if(_btn_mc.currentFrame == 1){ _result_txt.text = "POST: "; }else{ _result_txt.text = "GET: "; } var urlVar:URLVariables = new URLVariables(tempConnect.getResult()); _result_txt.appendText(urlVar.msg); } } }
Look at the source code of this php file. I don't need to bother about the calls to this php using a POST or a GET method. $_REQUEST will handle both POST and GET method calls. Isn't that great?
<?php //Regardless of POST or GET, grab the values that //were send to this php files $name = $_REQUEST["name"]; $desc = $_REQUEST["desc"]; $info = $_REQUEST["info"]; //output a simple message with the values that were //pass into this php file echo "msg=Hello ".$name.", the following are your description:".$desc." and here are your info.".$info."&misc="; ?>
Click here for the demo of this post.
Click here for the source files of this post.
No comments:
Post a Comment