Autor Tema: Ejercicio servicio web webservice usando SOAP nusoap configureWSDL PHP y MySql  (Leído 26687 veces)

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Ejercicio webservice usando (SOAP) nusoap PHP
« Respuesta #40 en: 26 de Abril 2017, 01:06 »
Bueno, seguí probando un poco y he conseguido que tu código funcione, te dejo los códigos de los cuatro archivos que usé:

formularios.php
Código: [Seleccionar]
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Servicios web</title>
</head>
<body>
<form action="cliente.php" method="post" >
Nombre: <input type="text" name="nombre" /><br/>
Direccion: <input type="text" name="direccion" /><br/>
Teléfono: <input type="text" name="telefono" /><br/>
Email: <input type="text" name="email" /><br/>
<input type="text" name="funcion" value="creaContacto" hidden />
<input type="submit" value="Crear nuevo usuario" />
</form>
<hr/>
<form action="cliente.php" method="post" >
Nombre<input type="text" name="nombre" />
<input type="text" name="funcion" value="buscarContacto" hidden />
<input type="submit" value="Buscar Contacto" />
</form>
<hr/>
<form action="cliente.php" method="post" >
<input type="text" name="funcion" value="mostrarTodosContactos" hidden />
<input type="submit" value="Mostrar todos los contactos" />
</form>
</body>
</html>

cliente.php
Código: [Seleccionar]
<?php
        
require_once("lib/nusoap.php");
        
$namespace "http://localhost/DAW_M07_ACT_05_Javier_Martin";
        
$serverScript 'servidor.php';
        
$metodoALlamar $_POST['funcion'];
        
$client = new nusoap_client("$namespace/$serverScript?wsdl"'wsdl');

        if(
strcmp($metdodALlamar'creaContacto')) {
            
$result $client->call(
                
"$metodoALlamar"
                array(
'nombre' => $_POST['nombre'],
                        
'direccion' => $_POST['direccion'],
                        
'telefono' => $_POST['telefono'],
                        
'email' => $_POST['email']),
                
"uri:$namespace/$serverScript"
                
"uri:$namespace/$serverScript/$metodoALlamar
            
);
        } else if(
strcmp($metdodALlamar'buscarContacto')) {
            
$result $client->call(
                
"$metodoALlamar"
                array(
'nombre' => $_POST['nombre']), 
                
"uri:$namespace/$serverScript"
                
"uri:$namespace/$serverScript/$metodoALlamar
            
);
        } else if(
strcmp($metdodALlamar'mostrarTodosContactos')) {
            
$result $client->call(
                
"$metodoALlamar"
                array(), 
                
"uri:$namespace/$serverScript"
                
"uri:$namespace/$serverScript/$metodoALlamar
            
);
        }

        echo 
$result."<br><br><a href='formularios.php'>Volver a formularios</a>";
?>

servidor.php
Código: [Seleccionar]
<?php

    
require_once("lib/nusoap.php");
    
$namespace "http://localhost/DAW_M07_ACT_05_Javier_Martin";
    
$server = new soap_server();
    
$server->configureWSDL("WSDLTST"$namespace);
    
$server->soap_defencoding 'UTF-8';
    
$server->wsdl->schemaTargetNamespace $namespace;  

      function 
creaContacto($nombre$direccion$telefono$email){

                require_once(
"datos.php");
                
$conn mysqli_connect($servername$username$password$dbname)or die("Error de conexión con la base de datos");
                
$sql "INSERT INTO contacto (nombre, direccion, telefono, email) VALUES ('".$nombre."', '".$direccion."', '".$telefono."', '".$email."')";
                if (
mysqli_query($conn$sql)) {
                    
$msg =  "Se introdujo un nuevo registro en la BD; ".$nombre;
                } else {
                    
$msg "Error: " $sql "<br>" mysqli_error($conn);
                }
                
mysqli_close($conn);
                return new 
soapval('return''xsd:string'$msg);
        }



       function 
buscarContacto($nombre) {

                require_once(
"datos.php");
                
$conn mysqli_connect($servername$username$password$dbname);
                
$sql "SELECT * FROM contacto where nombre='".$nombre."'";

                
$resultado mysqli_query($conn$sql);
               
                
$listado "<table><tr><td>identificador</td><td>Nombre</td><td>Dirección</td><td>Teléfono</td><td>email</td></tr>";
                while (
$fila mysqli_fetch_array($resultado)){
                        
$listado $listado."<tr><td>".$fila['id']."</td><td>".$fila['nombre']
                                .
"</td><td>".$fila['direccion']."</td><td>".$fila['telefono']
                                .
"</td><td>".$fila['email']."</td></tr>";
                }
                
$listado $listado."</table>";
                
mysqli_close($conn);

                
                return new 
soapval('return''xsd:string'$listado);

        }



       function 
mostrarTodosContactos() {

                require_once(
"datos.php");
                
$conn mysqli_connect($servername$username$password$dbname);
                
$sql "SELECT * FROM contacto";

                
$resultado mysqli_query($conn$sql);
                
$listado "<table><tr><td>identificador</td><td>Nombre</td><td>Dirección</td><td>Teléfono</td><td>email</td></tr>";
                while (
$fila mysqli_fetch_array($resultado)){
                        
$listado $listado."<tr><td>".$fila['id']."</td><td>".$fila['nombre']
                                .
"</td><td>".$fila['direccion']."</td><td>".$fila['telefono']
                                .
"</td><td>".$fila['email']."</td></tr>";
                }
                
$listado $listado."</table>";
                
mysqli_close($conn);

                return  new 
soapval('return''xsd:string'$listado);

        }


    
$server->register('creaContacto',
        array(
'nombre'=>'xsd:string','direccion'=>'xsd:string',
            
'telefono'=>'xsd:string','email'=>'xsd:string'),
        array(
'return'=> 'xsd:string'),
        
$namespace,
        
false,
        
'rpc',
        
'encoded',
        
'funcion que crea contacto'
        
);


    
$server->register
    
('mostrarTodosContactos',
        array(),
        array(
'return' => 'xsd:string'),
        
$namespace,
        
false,
        
'rpc',
        
'encoded',
        
'funcion que crea muestra los contactos'
        
);
   


     
$server->register
     
('buscarContacto',
        array(
'nombre' => 'xsd:string'),
        array(
'return' => 'xsd:string'),
         
$namespace,
        
false,
        
'rpc',
        
'encoded',
        
'funcion que crea muestra los contactos'
        
);       

    if ( !isset( 
$HTTP_RAW_POST_DATA ) ) {
         
$HTTP_RAW_POST_DATA file_get_contents'php://input' );
    }

    
$server->service($HTTP_RAW_POST_DATA);
?>


 



datos.php
Código: [Seleccionar]
<?php 
$servername "localhost";
$username "root";
$password "*******";
$dbname "nombreBaseDatos";
 
?>

Saludos. ;D
« Última modificación: 26 de Abril 2017, 01:09 por pedro,, »

javaquery

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 125
    • Ver Perfil
Re:Ejercicio webservice usando (SOAP) nusoap PHP
« Respuesta #41 en: 26 de Abril 2017, 09:34 »
Buenos dias
 he cambiado dos cosas yo en mi codigo en el archivo datos.php tengo puesto db_name y en el tuyo es dbname , luego en el servidor.php lo he cambiado , y en tu codigo tienes puesto id y en el mio identificador, he probado y sigue sin funcionarme, me inserta los datos , pero en el phpmyadmin no aparece nada, nada mas que la columna id.

Gracias

javaquery

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 125
    • Ver Perfil
Re:Ejercicio webservice usando (SOAP) nusoap PHP
« Respuesta #42 en: 26 de Abril 2017, 12:06 »
Ya funciona ;D ;D
 con el ultimo codigo que me pasaste

Muchas gracias ;) ;)

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".