Comunidad de diseño web y desarrollo en internet online

Problema com return Number en función con parámetro

Citar            
MensajeEscrito el 24 Ene 2009 02:00 pm
Estoy comenzando a construir services para AMFPHP y vi este ejemplo que funciona:

Código PHP :

<?php
class HelloWorld
{
    public function say($sMessage)
    {
        return 'You said: ' . $sMessage;
    }
}
?>


Quise hacer una adaptación para mostrar el resultado del cálculo de la raíz cuadrada de un número y me está devolviendo un error

Código PHP :

<?php
class calculaRaiz
{
   public function calcula($numero)
   {
      return sqrt($numero);
   }
}
?> 


Alguien sabe porqué? Desde ya muchas gracias. Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Ene 2009 03:39 pm
hola, bueno, esa linea esta bien, supongo que el error es en la parte del codigo en donde lo usas, de todas formas, agrega lo siguiente:

Código PHP :

<?php 
class calculaRaiz 
{ 
   public function calcula($numero) 
   { 
     is_numeric($numero)
     {
        return sqrt($numero); 
     }
     else
     {
        return 0;
     }
   } 
} 
?>


Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 24 Ene 2009 07:22 pm
Gracias por haberte dispuesto a ayudarme pero con ese código me devolvió este error:

Parse error: syntax error, unexpected '{' in /home/arachnos/public_html/amfphp/services/calculaRaiz.php on line 7

Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Ene 2009 07:24 pm
:P

Código PHP :

<?php  
class calculaRaiz  
{  
   public function calcula($numero)  
   {  
     if( is_numeric($numero) )
     { 
        return sqrt($numero);  
     } 
     else 
     { 
        return 0; 
     } 
   }  
}  
?>

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 24 Ene 2009 07:42 pm
Amigo ahora me está devolviendo el mismo error que en el código mio.

Error retrieving service info:

Invalid AMF message

Fatal error: Uncaught exception 'VerboseException' with message 'Cannot modify header information - headers already sent by (output started at /home/arachnos/public_html/amfphp/services/calculaRaiz.php:18)' in /home/arachnos/public_html/amfphp/core/amf/app/Gateway.php:191
Stack trace:
#0 [internal function]: amfErrorHandler(2, 'Cannot modify h...', '/home/arachnos/...', 191, Array)
#1 /home/arachnos/public_html/amfphp/core/amf/app/Gateway.php(191): header('Content-type: a...')
#2 /home/arachnos/public_html/amfphp/gateway.php(152): Gateway->service()
#3 {main}
thrown in /home/arachnos/public_html/amfphp/core/amf/app/Gateway.php on line 191

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Ene 2009 09:23 pm
:O bueno ya viendo que error te desplego puedo asegurarte que no es un problema con tu codigo, es un problema con las cabeceras, muy probablemente tengas un espacio en blanco antes de las etiquetas <?php al incio de la pagina, tendiras que checar el archivo "/home/arachnos/public_html/amfphp/gateway.php" ese mero debe tener el problema. Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 24 Ene 2009 09:44 pm
Bueno, usando san GOOGLE, encontre esto en una PAGE, en donde te dirigen a la pagina oficial de AMFPHP, en donde habla sobre ese problema en el siguiente parrafo:


BOM headers in Unicode files cause corrupt output


BOM headers in your service files may cause the output stream to become corrupt. That is because the output stream will contain the BOM header which is not valid AMF. Although in 99% of cases the BOM headers will not cause issues, some combinations of PHP version and server version and possibly the alignment of Jupiter may cause this rather nasty problem to show up. The solution is either to save as ASCII or to save as Unicode in an editor that doesn't add a BOM header, and deleting the old BOM header with an hex editor. UltraEdit in particular will do the job. To verify if this is indeed happening, load up Charles or Service Capture. If you see an error like 'cannot modify header information, output started at (guilty file):line number', then you've found the source of the error. Resave as DOS or Unix ASCII and it should work fine.

En resumen dice que los headers no causan problemas, pero que podrian causarlos debido a ciertas versiones de PHP, el servidor y la alineacion con jupiter XD
Ahi dice que necesitas guardar todo en codificacion ASCII, o guardarlo en UNICODE en un editor que no genere BOM headers, ademas deberias borrar el BOM header que ya estaba con UltraEdit, :S ese no es gratuito, pero es el que recomiendan. Yo sigo pensando que tienes por ahi un espacio en blanco, Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 24 Ene 2009 11:59 pm
Amigo, mucha pero muchas gracias.

Debajo del ?> tenía dos líneas vacias.

Las borré y el service funcionó. Nunca imaginé que después de cerrado el php dos líneas vacías ibam a hacerme perder un sábado de mi vida.

Gracias de nuevo. Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.