Galera me deparei com uma situação um pouco estranha, estou tentando tratar
erros no PHP para que quando ocorrer um erro seja retornado este erro para o
FLEX, estou fazendo o seguinte: no codigo abaixo tento executar o comando
SQL, se bem sucedido retorna um araay com o resultado, em caso de erro
retorna um array com os erros, se eu criar esta classe no php e usa-lá no
php, acontece exatamente o que quero, em caso de erro são retornados os
erros tudo beleza, porem chamando esta classe por RemoteObject usando AMFPHP
o array com o erro não é retornado, sera que existe uma solução para
retornar valores para o FLEX em caso de erro no PHP ou simplesmente se deu
erro não tem como retornar nada?
function carregaDados($id){
include "./../../libs/Conexao.php";
$sql = "select nome from sau_credenciado where idcredenciado = $id";
try {
if(!$rs=$bd->Execute($sql)){
throw new Exception();
}
$retorno['data']['NOME'] =$rs->fields['NOME'];
} catch (Exception $e) {
$retorno = array("erro" => true, "retorno" => $bd->ErrorMsg() . "
= " .$bd->MetaErrorMsg($bd->MetaError()));
}
return $retorno;
}
pelo browser do AMFPHP o erro retorno é esse
(Object)#0
message = "faultCode:INVALID_AMF_MESSAGE faultString:'Invalid AMF message'
faultDetail:'
Fatal error: Uncaught exception 'VerboseException' with message 'Cannot
modify header information - headers already sent by (output started at
C:\xampp\htdocs\sicoob_saude\flex\amfphp\adodb\lang\adodb-en.inc.php:34)' in
C:\xampp\htdocs\sicoob_saude\flex\amfphp\core\amf\app\Gateway.php:191
Stack trace:
#0 C:\xampp\htdocs\sicoob_saude\flex\amfphp\core\amf\app\Gateway.php(191):
amfErrorHandler(2, 'Cannot modify h...', 'C:\xampp\htdocs...', 191, Array)
#1 C:\xampp\htdocs\sicoob_saude\flex\amfphp\gateway.php(152):
Gateway->service('Content-type: a...')
#2 {main}
thrown in
C:\xampp\htdocs\sicoob_saude\flex\amfphp\core\amf\app\Gateway.php on line
191
'"
name = "Error"
rootCause = (null)
e pelo FLEX o erro é esse:
[RPC Fault faultString="Channel disconnected"
faultCode="Client.Error.DeliveryInDoubt" faultDetail="Channel disconnected
before an acknowledgement was received"]
at mx.rpc::AbstractInvoker/
http://www.adobe.com/2006/flex/mx/internal::faultHandler()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:216]
at
mx.rpc::Responder/fault()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\Responder.as:49]
at
mx.rpc::AsyncRequest/fault()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:103]
at
NetConnectionMessageResponder/channelDisconnectHandler()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\NetConnectionChannel.as:600]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at
mx.messaging::Channel/disconnectSuccess()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\Channel.as:1091]
at
mx.messaging.channels::NetConnectionChannel/internalDisconnect()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\NetConnectionChannel.as:153]
at
mx.messaging.channels::AMFChannel/internalDisconnect()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\AMFChannel.as:291]
at
mx.messaging.channels::AMFChannel/statusHandler()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\AMFChannel.as:361]
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---