Autor Tema: Ejercicio servicio web webservice usando SOAP nusoap configureWSDL PHP y MySql  (Leído 39682 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".