2013-03-29 28 views
0

我想调试一个内置在Flash中的联系表单,但我不知道如何去调试这个。从ActionScript中,我可以判断它应该将结果发布到/assets/files/functions.php。问题是,当我填写字段并点击'发送'(应该触发这个)时,没有任何反应,我不知道它是PHP问题还是闪存问题。ActionScript - 联系表单不工作

有没有关于如何调试的想法?

该网站可能是found here,点击“连接”后点击“发送查询”即可看到该表单。

的代码可以在下面看到:

lvOut = new LoadVars();    //create lv object 
lvIn = new LoadVars();    //create lv object 
lvIn.onLoad = function (success) { 
if(success){ 
    gotoAndPlay("success"); 
}else{ 
    gotoAndPlay("failure"); 
} 
} 

function submit() { 
if ((inputName.text != "") && (inputAddress.text != "") && (inputCity.text != "") && (inputState.text != "") 
     && (inputCountry.text != "") && (inputTelephone.text != "") && (inputEmail.text != "")) { 
     lvOut.input_name = inputName.text; 
     lvOut.input_address = inputAddress.text; 
     lvOut.input_city = inputCity.text; 
     lvOut.input_state = inputState.text; 
     lvOut.input_zip = inputZip.text; 
     lvOut.input_country = inputCountry.text; 
     lvOut.input_telephone = inputTelephone.text; 
     lvOut.input_email = inputEmail.text; 
     lvOut.input_bedrooms = inputBedrooms.text; 
     lvOut.input_realtor = inputRealtor.text; 
     lvOut.input_comments = inputComments.text; 

     if (realtorYes) { 
      lvOut.input_hasRealtor = "yes"; 
     } else if (realtorNo) { 
      lvOut.input_hasRealtor = "no"; 
     } else { 
      lvOut.input_hasRealtor = "no answer"; 
     }  

     //send vars to functions page and load in result 
     lvOut.sendAndLoad("assets/files/functions.php", lvIn, "POST"); 
} 
} 

btnSend.addEventListener("click", submit); 

请帮我出尽可能多的! :-)

+0

如果你发布了一些代码,我们也许能够提供帮助。 –

+0

好点。现在添加代码..很抱歉! –

回答

0

你的Flash应用程序有问题:它什么都不发送。我刚刚进入您使用Chrome所说的网页,并在“开发人员工具”菜单中打开了“网络”选项卡。它在“发送”按钮点击时捕获了0个请求。我不知道AS2(saveAndLoad是AS2方法),所以我不能说出了什么问题,但是here 是AS3中POST请求的一个工作示例。

0

尝试通过使用URLLoader类采取不同的方法。我假设你的functions.php文件在某处在线。

const SITE_DOMAIN:String = "PUT_YOUR_SITE_DOMAIN_HERE_UP_TO_ASSETS_FOLDER"; 
var loader = new URLLoader(); 
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); 
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); 
loader.addEventListener(Event.COMPLETE, loadCompleteHandler); 

request = new URLRequest(); 
request.url = SITE_DOMAIN + "assets/files/functions.php"; 
request.method = URLRequestMethod.POST; 
loader.load(request); 

function loadCompleteHandler(event:Event):void 
{ 
    // handle load complete 
} 

function securityErrorHandler(event:SecurityErrorEvent):void 
{ 
    // handle security error 
} 

function ioErrorHandler(event:IOErrorEvent):void 
{ 
    // handle io error 
} 

希望得到这个帮助。

0

您的PHP脚本中有错误:http://nordicacondos.com/assets/files/functions.php 修复它,然后在您的AS代码中尝试一些跟踪来查看发送到PHP的内容。

  1. 检查您的非空值的测试工作是由内添加跟踪,(我觉得你的问题是在这里,因为你的SWF发送即使填写了所有字段没有)
  2. 检查lvOut对象前的内容送,在AS2你可以浏览内容这样
for (var name in lvOut) { 
    trace(name +'->' + lvOut[name]); 
} 

的完整路径添加到PHP脚本,所以你可以从Flash IDE测试。

  1. 添加微量的LVIN onload句柄检查其登录这样的原始请求发射

您还可以检查在PHP端:

$handle = fopen('log.txt', 'ab+'); 
fwrite($handle, print_r($_REQUEST, true)); 
fwrite($handle, PHP_EOL); 
fclose($handle); 

确保你已经在functions.php目录写了权限。

使用AS3将提供更好的控制当然... :)