PHP - Servicio web ayuda !!!!!

   
Vista:

Servicio web ayuda !!!!!

Publicado por Cristian (94 intervenciones) el 24/09/2014 20:52:45
Hola a todos... ya no se como hacer esto. Ambos servicos web funcionan por separado, pero no logro que funcionen para validar. Les paso la prueba que estoy haciendo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
require_once('lib/nusoap.php');
//include('lib/nusoap.php');
 
$soap_server=new soap_server();
$ns = "http://servidor";
 
$soap_server->configureWSDL('Servidor','urn:http://servidor/');
 
 
 
$soap_server->register(
'productos',
array('tcParametroA'=>'xsd:string'), //,'tcParametroB'=>'zxd:string'),
array('return'=>'xsd:string'),
$ns,
$ns.'#Productos',
'rcp',
'encoded',
'productos'
);
 
$soap_server->register('MetodoPrueba',           // method name
    array('tcParametroX' => 'xsd:string'), //,'tcParametroB' => 'xsd:string'), // input parameters
    array('return' => 'xsd:string'),          // output parameters
    'urn:MetodoPruebawsdl',             // namespace
    'urn:MetodoPruebawsdl#MetodoPrueba',         // soapaction
    'rpc',                 // style
    'encoded',                // use
    'Retorna el datos'              // documentation
);
 
function MetodoPrueba($tcParametroA) { //,$tcParametroB) {
// Conectando, seleccionando la base de datos
$link = mysql_connect('mysql', 'usr', 'pass')
    or die('No se pudo conectar: ' . mysql_error());
echo 'Connected successfully';
mysql_select_db('base') or die('No se pudo seleccionar la base de datos');
 
// Realizar una consulta MySQL
$query = "SELECT * FROM usuarios where user_name='".$tcParametroA."'"; // and key= '".$tcParametroB."'";
$tabla = mysql_query($query);// or die('Consulta fallida: ' . mysql_error());
 
$num_registros=mysql_num_rows($tabla);
 
 
        if ($num_registros == 0)
                        {
            $ok=0;
            return $ok;
            }
            else{
                $ok=1;
                return $ok;
 
            }
 }
 
 
function Productos($tcParametroX) { /
   //MetodoPrueba($tcParametroA);
 
   if (MetodoPrueba($tcParametroA)==1) {
                $objConnect = mysql_connect("mysql","usr","pass") or die(mysql_error());
				$objDB = mysql_select_db("base");
				//$strSQL = "SELECT * FROM customer WHERE 1 AND CountryCode like '%".$strCountry."%' ";
                $strSQL = "SELECT * FROM customer WHERE 1 AND CountryCode like '%".$tcParametroX."%' ";
				$objQuery = mysql_query($strSQL) or die (mysql_error());
				$intNumField = mysql_num_fields($objQuery);
				$resultArray = array();
				while($obResult = mysql_fetch_array($objQuery))
				{
					$arrCol = array();
					for($i=0;$i<$intNumField;$i++)
					{
						$arrCol[mysql_field_name($objQuery,$i)] = $obResult[$i];
					}
					array_push($resultArray,$arrCol);
				}
				mysql_close($objConnect);
				return $resultArray;
 
   }else{
    $no="Incorrecto";
    return $no;
      }
   }
 
 
 
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$soap_server->service($HTTP_RAW_POST_DATA);

Espero me puedan ayudar porque ya no se que hacer..

Saludos y gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Servicio web ayuda !!!!!

Publicado por xve (5519 intervenciones) el 25/09/2014 08:31:08
Hola Cristian, el código que nos has mostrando, no lo podemos probar, ya que no disponemos de la base de datos...

Nos puedes comentar exactamente donde tienes el problema? para intentar verlo revisando el código?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Servicio web ayuda !!!!!

Publicado por Cristian (94 intervenciones) el 25/09/2014 12:48:17
xve.. gracias por responder..

Te explico mas en detalle: Cuando ejecuto los WS por separado funciona perfecto, ahora bien cuando quiero listar los productos solo si el usuario es correcto o sea (function Productos($tcParametroX)) no me funciona, no se como hacer para lograr eso.

Necesito validar eso sino cualquiera que acceda al http://servidor/pagina.php?wsdl puede acceder y no debe ser asi; o por ahi hay otra manera de resguardarlo y no es de esta forma.

Espero haber sido claro.
Saludos y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Servicio web ayuda !!!!!

Publicado por Gonzalo (338 intervenciones) el 25/09/2014 17:18:34
estas usando soap o rcp?

porque lo que pudieras hacer es usar firma digital o encryptar el mensaje o enviar certificados ya que soap no es totalmente seguro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Servicio web ayuda !!!!!

Publicado por Cristian (94 intervenciones) el 25/09/2014 17:23:40
Hola Gonzalo... gracias por responder...
Si estoy usando SOAP..

Perfecto, alguna idea de como hacerlo ??

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Servicio web ayuda !!!!!

Publicado por Gonzalo (338 intervenciones) el 25/09/2014 17:35:20
tal vez este ejemplo te pueda ser util.

http://www.islavisual.com/articulos/desarrollo_web/autenticacion-con-php-soap.php

salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Servicio web ayuda !!!!!

Publicado por Cristian (94 intervenciones) el 25/09/2014 17:58:40
Gracias Gonzalo... lo voy a probar y te comento.

No conocía rcp... es mejor ???

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Servicio web ayuda !!!!!

Publicado por Gonzalo (338 intervenciones) el 25/09/2014 19:26:03
mis disculpas, el nombre correcto es rpc, se basa en objetos, es anterior al SOAP, muchos servicios aun usan este metodo como dcom y corba.

salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Servicio web ayuda !!!!!

Publicado por Cristian (94 intervenciones) el 25/09/2014 19:37:25
Gracias Gonzalo por la ayuda...

Te mantendré informado de como me va.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar