Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ActionScript-联系人表单不工作_Php_Flash_Actionscript - Fatal编程技术网

Php ActionScript-联系人表单不工作

Php ActionScript-联系人表单不工作,php,flash,actionscript,Php,Flash,Actionscript,我正在尝试调试一个内置于Flash中的联系人表单,但我不确定如何调试它。从ActionScript中,我可以看出它应该将结果发布到/assets/files/functions.php。问题是,当我填写字段并单击“发送”(应该会触发此操作)时,什么都没有发生,我也不知道这是PHP问题还是flash问题 关于如何调试这个有什么想法吗 点击“连接”,然后点击“发送查询”,即可查看网站和表单 代码如下所示: lvOut = new LoadVars(); //create

我正在尝试调试一个内置于Flash中的联系人表单,但我不确定如何调试它。从ActionScript中,我可以看出它应该将结果发布到/assets/files/functions.php。问题是,当我填写字段并单击“发送”(应该会触发此操作)时,什么都没有发生,我也不知道这是PHP问题还是flash问题

关于如何调试这个有什么想法吗

点击“连接”,然后点击“发送查询”,即可查看网站和表单

代码如下所示:

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);

请尽可能地帮助我!:-)

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

尝试使用
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
}

希望有此帮助。

您的PHP脚本中有一个错误: 修复它,然后在AS代码中尝试一些跟踪,以查看发送到PHP的内容

  • 通过在内部添加跟踪检查您对非空值的测试是否有效(我认为您的问题在这里,因为即使所有字段都已填充,您的swf也不会发送任何内容)
  • 在发送之前检查lvOut对象的内容,在AS2中,您可以像这样浏览内容
  • 将完整路径添加到PHP脚本中,以便可以从FlashIDE进行测试

  • 在lvIn onLoad处理程序中添加一个跟踪,以检查其是否被触发
  • 您还可以通过如下方式记录原始请求,在PHP端进行检查:

    $handle = fopen('log.txt', 'ab+');
    fwrite($handle, print_r($_REQUEST, true) );
    fwrite($handle, PHP_EOL);
    fclose($handle);
    
    确保您对functions.php目录具有写入权限


    当然,使用AS3可以提供更好的控制…:)

    如果您发布一些代码,我们可能会提供帮助。很好。正在添加代码。。对不起!
    $handle = fopen('log.txt', 'ab+');
    fwrite($handle, print_r($_REQUEST, true) );
    fwrite($handle, PHP_EOL);
    fclose($handle);