ZendAMF geçersiz XML dönen ve Flash, yöntem çağrıldığında BadVersion hataya neden

0 Cevap php

Ben Flash'tan bir MySQL veritabanı uzaktan yöntem çağrıları yapmak için ZendAMF kullanmaya çalışıyorum ve NetConnection.Call.BadVersion hatayı recieving tutun.

Benim Server düzgün çalışıyor. Apache 2.2.14

Benim PHP düzgün çalışıyor. PHP 5.2.11

Benim Veritabanı çalışıyor. MySQL 5.0

UPDATE: My first problem was a security error in Flash. If you try to run a local SWF from the Flash IDE to a web service online, you'll get a security warning which will throw the BadVersion error. However, the security error won't show up if you 'TEST MOVIE' so it took me a while to realize that. I changed my testing process to remove this variable. I am now able to implement my php class code successfully using AMFPHP, which essentially rules out my class as the issue (I think). It seems to be a problem with the Zend implemntation of AMF.

Ben buradan Lee Brimlow bir öğretici takip ettim: http://www.gotoandlearn.com/play.php?id=90. Ben bu yerel olarak işe almak için başaramadı ve ben bir web sunucusu üzerine benim içerik hareket ettik ve benim SWF sınıf ve yöntem arayabilirsiniz. Ben yanıt görüntülemek için Charles'ı kullandım. Ben Charles yanıtı doğrulamak için gittiğimde bu olsun:

Validator: Failed to Parse XML Document.
Reason: An invalid XML character (Unicode: 0x0) was found in the CDATA section.
Line: 65 Column: 87

Herhangi bir fikir bu nasıl düzeltebilirim? PHP içinde ele alınabilir?

İşte benim ZendAMF kodu:

<?php

error_reporting(E_ALL|E_STRICT);
ini_set("display_errors", "on");
ini_set("include_path",  "./frameworks");
require_once 'Zend/Amf/Server.php';
require_once 'Animal.php';
$server = new Zend_Amf_Server();
$server->setClass("Animal");
$server->setProduction(false);
$response = $server->handle();
echo $response;

?>

İşte benim PHP Class kodu: (hayır kapanış not> etiketi?).

<?php

class Animal
{
    public function __construct()
    {
        include "dbinfo.inc.php";
        $linkID = mysql_connect('localhost', $username, $password) or die("Could not connect to host.");
        mysql_select_db($database, $linkID) or die( "Unable to select database.");
    }

    public function getAnimalQuotes()
    {
        $result = mysql_query("SELECT * FROM AnimalQuotes");
        $t = array();
        while($row = mysql_fetch_assoc($result))
        {
            array_push($t, $row);
        }
        return $t;
    }
}

I've updated my Flash Player to 10.1. I'm publishing my swf to Flash 10/AS3.

Benim SWF çalıştırdığınızda ben hala bu hatayı alıyorum.

Error #2044: Unhandled NetStatusEvent:. level=error, code=NetConnection.Call.BadVersion
at ZendAMF_fla::MainTimeline/frame1()

İşte benim AS3 kod:

import flash.net.*;
var nc:NetConnection = new NetConnection();
nc.connect("http://www.pbjs.com/2010/");
var res:Responder = new Responder(onResult, onFault);
nc.call("Animal.getAnimalQuotes", res);
function onResult(e:Object):void
{
    trace (e);
}
function onFault(e:Object):void
{
    for (var i in e){
        trace(e[i]);
    }
}

0 Cevap