Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » Joomla »

Php + Joomla + Webservices + AYUDA!!!

Estas en el tema de Php + Joomla + Webservices + AYUDA!!! en el foro de Joomla en Foros del Web. Hola a tod@s ojalá me puedan ayudar... Lo que quiero hacer que funcione es lo siguiente: Tengo desarrollado un sitio en joomla (PHP) y base ...
  #1 (permalink)  
Antiguo 20/01/2011, 09:30
 
Fecha de Ingreso: enero-2011
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 1
Exclamación Php + Joomla + Webservices + AYUDA!!!

Hola a tod@s ojalá me puedan ayudar...

Lo que quiero hacer que funcione es lo siguiente:

Tengo desarrollado un sitio en joomla (PHP) y base de datos MySQL y en el da la opción de registro a usuarios.

A la vez un compañero tiene desarrollado un sitio transaccional con base de datos SQL server 2005

En el registro de joomla hay 6 campos (Nombre, Nombre de ususario, Email, Contraseña, verificar la contraseña y número de cédula) Lo que se busca es que el usuario a registrase al ingresar el número de cédula, este número debe comprobarse si ya existe en la base de datos sql server del sitio transaccional que es viejo y que ya tiene usuarios (esto es para verificar si efectivamente los usuarios que ya estan registardos en en el sitio anterior de los que no), para esto mi compañero elaboro un webservice: http//MI_WEBSERVICE?WSDL en el se debe comprobar si el número de cédula ya existe en la base de datos sql server, si ya existe debe permitir el registro, de lo contrario no.

Para esto desarrollé un script en php que consuma el webservice, llamado “cliente.php”
Código PHP:
<form id="form1" name="form1" method="post" action="">
  <label>
  <input type="text" name="cedula" id="cedula" />
  </label>
  <p>
    <label>
    <input type="submit" name="enviar" id="enviar" value="enviar" />
    </label>
  </p>
</form>
<?php 
require_once("lib/nusoap.php");
$client = new soapclient("http//MI_WEBSERVICE?WSDL "true); 
$param = array(
               
"Cedula" => $_POST['cedula'],
               
"User" => "miusuario",
               
"Password" => "mipass"
                             
);
               
$result $client->call("Consulta",$param); 

if(isset(
$_POST["enviar"])) 

echo 
"<pre>";        print_r($result[ConsultaResult]);        echo "</pre>"


        
?>
Hasta ahí todo bien, el webservice me devuelve los datos, el problema es que no se como validar los datos para que el usuario pueda o no registrarse y colocar este ascript dentro del formulario de registro de joomla. Espero que me puedan ayudar. Muchas Gracias!
  #2 (permalink)  
Antiguo 20/01/2011, 10:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 9 meses
Puntos: 2135
Tema movido desde PHP a Joomla
  #3 (permalink)  
Antiguo 26/01/2011, 09:08
 
Fecha de Ingreso: enero-2011
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Php + Joomla + Webservices + AYUDA!!!

Por si a alguien se le presenta el mismo problema, logré resolverlo de la siguiente manera:

1) Modificar el core de joomla en el archivo /libraries/joomladatabase/table/users.phpy ahí agrego el código de verififcación y validación de el dato guardado en otra ¡base de datos en otro servidor mediante un webservice.

2) Busco la línea de código:
Código PHP:
/**
     * Validation and filtering
     *
     * @return boolean True is satisfactory
     */
    
function check()
    {
        
jimport('joomla.mail.helper');

        
// Validate user information 
3) luego de esa línea hago la comprobación y validación:

Código PHP:
require_once("lib/nusoap.php");
$client = new nusoap_client("http://MI_WEBSERVICE?WSDL"true); 
$param = array(
               
"Cedula" => $_POST['cedula'],
               
"User" => "USER",
               
"Password" => "PASS"
                             
);
               
$result $client->call("Consulta",$param); 
$total $result[ConsultaResult];
$palabra "OK";
if(
stristr($total$palabra) === FALSE) { 
$this->setErrorJText::_('MENSAJE DE ERROR') ); 
return 
false

Y listo con ese código le consulto al webservice si el número de cédula existe en otra base de datos si el número realmente existe el webservice me devuelve el mensaje "OK" y le digo a php que si el webservice no devuelve la palbra "OK" no se ejecute el registro de lo contrario lo haga..

Es todo.

Ojalá le sirva a alguien con el mismo problema que tuve, me costó mucho llegar al código aunque se ve tan sencillo..

Etiquetas: php, validar, webservice
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 20:46.