Я пытаюсь использовать ZendAMF для выполнения удаленных вызовов методов для базы данных MySQL из Flash и продолжаю получать ошибку NetConnection.Call.BadVersion.
Мой сервер работает правильно.Apache 2.2.14
Мой PHP работает правильно.PHP 5.2.11
Моя база данных работает.MySQL 5.0
ОБНОВЛЕНИЕ: моей первой проблемой была ошибка безопасности во Flash.Если вы попытаетесь запустить локальный SWF-файл из Flash IDE для веб-службы в Интернете, вы получите предупреждение системы безопасности, которое вызовет ошибку BadVersion.Тем не менее, ошибка безопасности не будет отображаться, если вы 'ТЕСТ ФИЛЬМ', поэтому мне потребовалось некоторое время, чтобы понять это.Я изменил процесс тестирования, чтобы удалить эту переменную.Теперь я могу успешно реализовать свой код класса php, используя AMFPHP, который, по сути, исключает мой класс как проблему (я думаю).Кажется, это проблема с Zend-реализацией AMF.
Я ознакомился с руководством Ли Бримлоу: http://www.gotoandlearn.com/play.php?id=90.Мне не удалось заставить это работать локально, и я переместил свой контент на веб-сервер и могу вызывать класс и метод из моего SWF.Я использовал Чарльза, чтобы посмотреть ответ.Когда я проверяю ответ Чарльза, я получаю следующее:
Validator: Failed to Parse XML Document.
Reason: An invalid XML character (Unicode: 0x0) was found in the CDATA section.
Line: 65 Column: 87
Есть идеи, как это исправить?Может ли он быть обработан в PHP?
Вот мой код ZendAMF:
<?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;
?>
Вот мой код класса PHP: (не закрывайте тег?>.)
<?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;
}
}
Я обновил свой Flash Player до 10.1.Я публикую свой SWF на Flash 10 / AS3.
Я все еще получаю эту ошибку при запуске SWF.
Error #2044: Unhandled NetStatusEvent:. level=error, code=NetConnection.Call.BadVersion
at ZendAMF_fla::MainTimeline/frame1()
Вот мой код AS3:
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]);
}
}