Foros del Web » Programando para Internet » PHP »

Error al leer datos de un web service

Estas en el tema de Error al leer datos de un web service en el foro de PHP en Foros del Web. Saludos: Necesito de su ayuda urgente, estoy usando un web service de mi universidad para hacer un login en un sistema que estoy haciendo, y ...
  #1 (permalink)  
Antiguo 10/12/2008, 12:36
 
Fecha de Ingreso: diciembre-2008
Mensajes: 2
Antigüedad: 15 años, 4 meses
Puntos: 0
Error al leer datos de un web service

Saludos:
Necesito de su ayuda urgente, estoy usando un web service de mi universidad para hacer un login en un sistema que estoy haciendo, y me sale este error:

Fatal error: Cannot use string offset as an array in /home/.../login.php on line 59

y la linea 59 tiene esto:

$cedula = $result['datosUsuarioResult']['diffgram']['NewDataSet']['DATOS_USUARIO']['CEDULA'];

por lo que he investigado es a causa de PHP 5, porque en la version 4 funcionaba muy bien.

Agradeceria cualquier ayuda que me puedan brindar.


Este es el codigo completo que uso:

require_once('lib/nusoap.php');
$client = new nusoap_client('https://www.academico.espol.edu.ec/services/directorioEspol.asmx?WSDL', true);
$params = '<datosUsuario xmlns="http://academico.espol.edu.ec/webservices/"><varUser>'.$_POST['usser'].'</varUser><varContrasenia>'.$_POST['usu_password'].'</varContrasenia></datosUsuario>';
$client->setUseCurl(true);
$result = $client->call('datosUsuario',$params,'http://academico.espol.edu.ec/webservices/','http://academico.espol.edu.ec/webservices/datosUsuario');


$cedula = $result['datosUsuarioResult']['diffgram']['NewDataSet']['DATOS_USUARIO']['CEDULA'];
$matricula = $result['datosUsuarioResult']['diffgram']['NewDataSet']['DATOS_USUARIO']['MATRICULA'];
$nombre_completo = $result['datosUsuarioResult']['diffgram']['NewDataSet']['DATOS_USUARIO']['NOMBRE_COMPLETO'];
$nombres = $result['datosUsuarioResult']['diffgram']['NewDataSet']['DATOS_USUARIO']['NOMBRES'];
$apellidos = $result['datosUsuarioResult']['diffgram']['NewDataSet']['DATOS_USUARIO']['APELLIDOS'];

Explico un poco mas como funciona, tengo un sistema para estudiantes que deben ingresar el user y password de su cuenta de correo de la facultad, para esto la universidad tiene un web service.
El login funcionaba muy bien cuando el servidor tenia PHP 4 pero ahora tiene PHP 5 y no me funca.
Yo creo que va por el lado de la forma como le asigno la variable.

Muchas gracias por toda la ayuda.

Y al usar print_r($result) no me sale nada.... no muestra nada...


Ya le probe... le puse:
echo '----->'.var_dump($result).'<-----';

y me salio:
string(0) "" -----><-----
Quizas este usando mal la llamada al web service..

Última edición por hacker_man; 10/12/2008 a las 15:31
  #2 (permalink)  
Antiguo 10/12/2008, 12:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error al leer datos de un web service

Mmmm

Cannot use string offset as an array, quiere decir que no puedes usar un string como un arreglo, ahora para ver en que parte es lo importante, prueba hacer un var_dump() en cada parte de tu array hasta que encuentres el erroneo, por ejemplo:
Código php:
Ver original
  1. var_dump($result['datosUsuarioResult']);
  2. var_dump($result['datosUsuarioResult']['diffgram']);
  3. // etc.

Saludos.
  #3 (permalink)  
Antiguo 10/12/2008, 12:40
 
Fecha de Ingreso: octubre-2004
Mensajes: 88
Antigüedad: 19 años, 6 meses
Puntos: 2
Respuesta: Error al leer datos de un web service

Pues se ve bien, lo unico qiue puede ser es que este mal escrito o que el array no venga con todos los campos que tu quieres

intenta imprimiendo todo el array

print_r($result);

haber si es que esta bien generado
__________________
Consejos de Programación
  #4 (permalink)  
Antiguo 10/12/2008, 14:18
 
Fecha de Ingreso: diciembre-2008
Mensajes: 2
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Error al leer datos de un web service

Muchas gracias por la ayuda GatorV, intente con la funcion var_dump:

echo '<br>datosUsuarioResult->'.var_dump($result['datosUsuarioResult']);
echo '<br>diffgram->'.var_dump($result['datosUsuarioResult']['diffgram']);
echo '<br>NewDataSet->'.var_dump($result['datosUsuarioResult']['diffgram']['NewDataSet']);
echo '<br>DATOS_USUARIO->'.var_dump($result['datosUsuarioResult']['diffgram']['NewDataSet']['DATOS_USUARIO']);
echo '<br>CEDULA->'.var_dump($result['datosUsuarioResult']['diffgram']['NewDataSet']['DATOS_USUARIO']['CEDULA']);


y esto fue lo q me salio:

string(0) ""
datosUsuarioResult->

se queo en la 1era linea.
  #5 (permalink)  
Antiguo 10/12/2008, 15:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error al leer datos de un web service

Prueba un var_dump($result), antes que todo.

Saludos.
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 23:13.