Кашу пишете, если честно. Попробуйте проверить PHP отдельно, переставив с $_POST на $_GET. Если будет функционировать, то ищите проблему в AS. Для начала не лепите так много условных операторов и прочих "фишек", а используйте только необходимый код для проверки "связи" с PHP. Как только "связь" будет установлена, то можно "наращивать" код. Так Вам будет легче находить ошибки на первых парах.
вот Вам примерный код для общения с сервером (возможны ошибки)

Код AS3:
package {
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.EventDispatcher;
import flash.net.URLVariables;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.net.URLRequestMethod;
import flash.net.URLLoaderDataFormat;
public class Server extends EventDispatcher {
public static const COMPLETE:String = "COMPLETE";
public static const ERROR:String = "ERROR";
private var loader:URLLoader;
private var req:URLRequest;
private var sendVars:URLVariables;
private var getVars:URLVariables;
public function Server () {
req = new URLRequest();
req.method = URLRequestMethod.POST;
req.url = "http://site.com/";
loader = new URLLoader();
}
public function addVars (name:String, value:*) :void {
if (!sendVars) sendVars = new URLVariables();
sendVars[name] = value;
}
public function send () :void {
req.data = sendVars;
loader.addEventListener(Event.COMPLETE, onComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, onError);
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.load(req);
// #
trace("send");
deepTrace(sendVars);
}
private function onComplete (e:Event) :void {
loader.removeEventListener(Event.COMPLETE, onComplete);
loader.removeEventListener(IOErrorEvent.IO_ERROR, onError);
getVars = new URLVariables();
getVars.decode(e.currentTarget.data);
// #
trace("get");
deepTrace(getVars);
dispatchEvent(new Event(Server.COMPLETE));
}
private function onError (e:Event) :void {
loader.removeEventListener(Event.COMPLETE, onComplete);
loader.removeEventListener(IOErrorEvent.IO_ERROR, onError);
dispatchEvent(new Event(Server.ERROR));
}
public function getVar (name:String) {
if (getVars[name]) {
return getVars[name];
}
return undefined;
}
private function deepTrace (obj:*) : void {
for (var val:* in obj) {
trace('[' + typeof(obj[val]) + '] ' + val + ' => ' + obj[val]);
}
}
}
}
а так использовать

Код AS3:
package {
import flash.display.Sprite;
import flash.events.*;
public class Main extends Sprite {
public function Main () {
var loader:Server = new Server();
loader.addVars("id", 243);
loader.addVars("login", "login");
loader.addVars("password", "123456");
loader.addEventListener(Server.COMPLETE, complete);
loader.addEventListener(Server.ERROR, error);
loader.send();
}
private function complete (e:Event) :void {
e.currentTarget.removeEventListener(Server.COMPLETE, complete);
e.currentTarget.removeEventListener(Server.ERROR, error);
trace(e.currentTarget.getVar("var"));
}
private function error (e:Event) :void {
e.currentTarget.removeEventListener(Server.COMPLETE, complete);
e.currentTarget.removeEventListener(Server.ERROR, error);
trace("error");
}
}
}