Foros del Web » Programando para Internet » PHP »

Error en el servidor web

Estas en el tema de Error en el servidor web en el foro de PHP en Foros del Web. Buenas a todos, tengo un problema con el servidor, me da el siguiente error cuando hago la llamada en el cliente: Error: the server returned ...
  #1 (permalink)  
Antiguo 24/11/2007, 12:14
Avatar de Helenha  
Fecha de Ingreso: noviembre-2007
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
Error en el servidor web

Buenas a todos, tengo un problema con el servidor, me da el siguiente error cuando hago la llamada en el cliente:

Error: the server returned the following HTTP status: 500
Received:


bueno a ver si alguienpuede ayudarme, un saludo.
  #2 (permalink)  
Antiguo 25/11/2007, 12:23
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Error en el servidor web

Puede ser por muchas cosas, el 500 bien puede considerarse un error "genérico".

¿qué página pedís cuando te sale ese error? ¿qué contiene la página?
¿hay un .htaccess involucrado? Si lo hay, ¿qué pasa si lo quitás?
¿es un error nuevo o ya te había pasado antes? Si no es nuevo ¿qué fue lo último que cambiaste?

Para poder solucionar el tema, tendrás que contestar esas preguntas


Saludos.
  #3 (permalink)  
Antiguo 26/11/2007, 04:40
Avatar de Helenha  
Fecha de Ingreso: noviembre-2007
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Error en el servidor web

Muchas gracias por contestarme ALVLIN, es un error nuevo, pero ya se cual es el problema, el servidor no me devuelve los datos complejos bien, no se de ke puede ser, por mucho ke lo miro no encuentro el error.
Dejo aki el trozo de codigo ke causa el error:

Código PHP:
    //ESTA FUNCION ES PARA DEPURAR ERRORES
    
function dep($str){
      
$arc fopen("c:\\log.txt","a+");
      
fwrite($arc,$str."\n\r");
      
fclose($arc);
    }
    
    
    
dep("Inicio");
    
    
// Incluimos las clases de SOAP:
    
require("lib/nusoap.php");
    
// Creamos el objeto del servidor:
    
$servidor = new soap_server();
    
    
    
    
$namespace="http://localhost/services/servicioweb.php";
    
    
// Generación del WSDL
    
$servidor->debug_flag=false;
    
$servidor->configureWSDL('ApplicationServices',$namespace);
    
$servidor->wsdl->schemaTargetNamespace $namespace;

    
// Agregamos un tipo de dato complejo
    
$servidor->wsdl->addComplexType(
        
"datosArticulos",
        
"complexType",
        
"struct",
        
"all",
        
"",
        array(
            
"id" => array("name"=>"id""type"=>"xsd:int"),
            
"descripcion" => array("name"=>"descripcion""type"=>"xsd:string"),
            
"precio" => array("name"=>"precio""type"=>"xsd:double"),
            
"seccion" => array("name"=>"seccion""type"=>"xsd:int"),
            
"tipoarticulo" => array("name"=>"tipoarticulo""type"=>"xsd:int"))
    );
    
//Lista de Articulos
    
$servidor->wsdl->addComplexType(
        
"listaArticulos",
        
"complexType",
        
"array",
        
"",
        
"SOAP-ENC:Array",
        array(),
            array(
                array(
"ref" => "SOAP-ENC:arrayType",
                      
"wsdl:arrayType" => "tns:datosArticulos[]")),
                
"tns:datosArticulos");

    
// Registramos la función que queremos exponer como servicio web
    
dep("Registramos funciones...");
    
$servidor->register("ObtenerArticulos", array("seccion" => "xsd:int","tarticulo" => "xsd:int","tienda" => "xsd:int","inicial" => "xsd:int","cantidad" => "xsd:int","ordenar" => "xsd:string"), array("return" => "tns:listaArticulos"), $namespace);
    
$servidor->register("NumArticulosTotales", array("seccion" => "xsd:int","tarticulo" => "xsd:int","tienda" => "xsd:int"), array("return" => "xsd:int"), $namespace);
    
//LA FUNCION NUMARTICULOS ME VA BIEN LA KE ME FALLA ES LA DE OBTENER ARTICULOS
    
    
function ObtenerArticulos($seccion$tarticulo$tienda$inicial$cantidad$ordenar){
        
dep("Obteniendo articulos...");
        
dep("Tipo articulo:... ".$ordenar);
        if (
is_int($seccion) && is_int($tarticulo)){   
            
$DBlink = @mysql_connect("localhost""root""");
            if(
$tienda==-1){
                 
$sql="SELECT a.articuloID as id, a.descripcion as descripcion, a.precio as precio,
                   s.descripcion as seccion, t.descripcion as  tipoarticulo
                   FROM articulo a, seccion s, tipoarticulo t
                   WHERE a.tipoArticuloID = t.tipoArticuloID
                   AND s.seccionID = a.seccionID
                   AND a.seccionID ="
$seccion."
                   AND a.tipoArticuloID = "
.$tarticulo." ORDER BY precio ".$ordenar." LIMIT ".$inicial.",".$cantidad;
            }else{
                
$sql="SELECT a.articuloID as id, a.descripcion as descripcion, a.precio as precio,
                    s.descripcion as seccion, t.descripcion as  tipoarticulo
                    FROM articulo a, seccion s, tipoarticulo t
                    WHERE a.tipoArticuloID = t.tipoArticuloID
                    AND s.seccionID = a.seccionID
                    AND a.seccionID ="
.$seccion."
                    AND a.tipoArticuloID ="
.$tarticulo."
                    AND a.tiendaID = "
.$tienda." ORDER BY precio ".$ordenar." LIMIT ".$inicial.",".$cantidad
            }
            
$DBresult = @mysql_db_query('proyecto_s',$sql);
          
            
/*// comprobación simple de error 
            if (!$DBresult) {
                return new soap_fault('Server', '', 'Error Interno del Servidor.');
            }*/
      
            
mysql_close($DBlink);
            
// Imprimiendo los resultados
            
$i =0;
            
dep("Recorremos tiendas...");
            while(
$array mysql_fetch_array($DBresultMYSQL_ASSOC)) {

                 
dep("Procesando tienda...".$array['descripcion']);

                 
$resultado[$i]= array(
                                    
'id'  => $array['id'],
                                    
'descripcion' => $array['descripcion'],
                                    
'precio'  => $array['precio'],
                                    
'seccion' => $array['seccion'],
                                    
'tipoarticulo'  => $array['tipoarticulo']
                                ); 
                 
$i++;
             }
            
// retornamos los datos
            //return mysql_fetch_array($DBresult, MYSQL_ASSOC);  
            
dep("Resultado...".$resultado[0]['descripcion']);
            
//NO ME DEVUELVE LOS DATOS ANTERIORES
            //return new soapval('return','tns:ListaArticulos',$resultado);
            
return $resultado;
        } 
        
// aceptamos solo enterpos
        
else {
          return new 
soap_fault('Client''''Los parametro a pasar solo deben ser enteros.');
        }  
     }

........
// Enviar el resultado como una respuesta SOAP por HTTP
    
if (isset($HTTP_RAW_POST_DATA)) {
       
$input $HTTP_RAW_POST_DATA;
    }
    else {
       
$input implode("\r\n"file('php://input'));
    }

    
$servidor->service($input);
    exit(); 
  #4 (permalink)  
Antiguo 26/11/2007, 04:45
Avatar de Helenha  
Fecha de Ingreso: noviembre-2007
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Error en el servidor web

Ha tambien te dejo la pagina donde hago la llamada al servidor:

Código PHP:
<?php
      
//Incluimos el fichero config.php 
      //require("config.php");
      // Incluimos las clases de SOAP
      
require("lib/nusoap.php");
      
//OTRA FUNCION DE DEPURACION
      
function dep2($str){
          
$arc fopen("c:\\log2.txt","a+");
          
fwrite($arc,$str."\n\r");
          
fclose($arc);
      }
      
      
// crea el cliente
      
$ns="http://localhost/services/servicioweb.php?wsdl";
      
$cliente = new soapclient($nstrue);
      
       
      
$tienda$_GET["tipobusqueda"];
      
$seccion$_GET["seccion"];
      
$tarticulo$_GET["articulo"];
      
$cantidad$_GET['npag'];
            
      
$ordenar$_GET['ordenar'];
      if (!isset(
$ordenar))
          
$ordenar "ASC"// $ordenar orden de los articulos

      
$pg $_GET['pg'];
      if (!isset(
$pg))
          
$pg 0// $pg es la pagina actual
          
      
if (!isset($cantidad))
          
$cantidad=2// cantidad de resultados por página
     
      
$inicial $pg $cantidad;
      
      
// llamada al metodo (ObtenerArticulos)
      
      
$parametros = array((int)$seccion, (int)$tarticulo, (int)$tienda, (int)$inicial, (int)$cantidad, (string)$ordenar);
      
$array $cliente->call('ObtenerArticulos',$parametros);
      
dep2("Resultado...".$array[0]['descripcion']);
?>
  #5 (permalink)  
Antiguo 27/11/2007, 04:26
Avatar de Helenha  
Fecha de Ingreso: noviembre-2007
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Error en el servidor web

Agradezco tu ayuda ALVLIN pero ya lo he solucionado todo, he vuelto a revisar todo he codigo y me dao cuenta de ke tenia un pequeño error, bueno chao y gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:31.