Foros del Web » Programando para Internet » PHP »

Obtener Respuesta de otra WEB

Estas en el tema de Obtener Respuesta de otra WEB en el foro de PHP en Foros del Web. Hola gente.... Tengo un dilema y es el siguiente... Necesito enviar unas variables mediante un formulario POST a un script en PHP q esta corriendo ...
  #1 (permalink)  
Antiguo 11/07/2007, 01:50
Avatar de granbosteron  
Fecha de Ingreso: agosto-2004
Mensajes: 164
Antigüedad: 19 años, 7 meses
Puntos: 1
Pregunta Obtener Respuesta de otra WEB

Hola gente....
Tengo un dilema y es el siguiente...

Necesito enviar unas variables mediante un formulario POST a un script en PHP q esta corriendo en otra web .. ejemplo: www.web2.com/script.php
las variables las envio desde mi web ... ejemplo: www.myweb.com/formulario.php

El script al que llamo me tiene q devolver a mi pagina una variable con un "OK" o un "CANCEL" demas esta decir q el script ya cuenta con esto..

El problema q tengo es q en todas las variables q le envio a ese script no puedo enviarle una variable de RETORNO a una pagina especifica de mi web...
ejemplo:

Código PHP:
<input type=hidden name='return_url' value='www.myweb.com/ok.php'>
<
input type=hidden name='cancel_url' value='www.myweb.com/cancel.php'
Entonces es como q cuando activo el formulario va a la otra web y se queda ahi.. no retorna a la mia cuando deberia poder hacerlo....

PREGUNTA:

En PHP no hay alguna especie de Funcion q se algo parecido a esto ??:

Código PHP:
$ret respuesta("www.web2.com/script.php"'VARS_POST'); 
En el primer parametro meto la URL del sitio q tiene el SCRIPT, y en el segundo parametro pongo las variables q le envio x POST ...
y que en $ret me guarde la respuesta en algun especie de ARRAY o string???

saludos y espero se entienda mi consulta.
Gracias!!!!!!
__________________
Saludos :adios: :adios: :adios:
  #2 (permalink)  
Antiguo 11/07/2007, 02:22
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: Obtener Respuesta de otra WEB

yo usaba esta funcion:

Código PHP:
function post($host,$query,$others='')
{
   
$path=explode('/',$host);
   
$host=$path[0];
   unset(
$path[0]);
   
$path='/'.(implode('/',$path));
   
$post="POST $path HTTP/1.1\r\nHost: $host\r\nContent-type: application/x-www-form-urlencoded\r\n${others}User-Agent: Mozilla 4.0\r\nContent-length: ".strlen($query)."\r\nConnection: close\r\n\r\n$query";
   
$h=fsockopen($host,80);
   
fwrite($h,$post);
   for(
$a=0,$r='';!$a;){
       
$b=fread($h,8192);
       
$r.=$b;
       
$a=(($b=='')?1:0);
   }
   
fclose($h);
   return 
$r;

de ahi no modifiques nada

ejemplo de uso:

Código PHP:
$host"dominio.com/pagina.php";      
   
$datos="dato1=valor1&dato2=valor2&etc=etc"//lo que pasarias por post  
            //enviamos los datos por post a la web y recuperamos el codigo 
            
$valor=post($host,$datos);
/*en $valor hay un codigo muy largo y al final esta el dato que te tienen que devolver a ti, 
por lo que tienes que saber el tamaño de esa cadena y cortarla de $valor; 
supongamos que tienes que recibir un OK, tamaño 2 por lo que:*/
$resultado=substr($valor,-2); 
y en resultado ya tendrias el OK.
A ver si te vale.
Nota: en $host no le metas "http://" ni (creo recordar) "www".
__________________
ALOZORRO v5.0 (ahora en .es)
  #3 (permalink)  
Antiguo 11/07/2007, 02:55
Avatar de granbosteron  
Fecha de Ingreso: agosto-2004
Mensajes: 164
Antigüedad: 19 años, 7 meses
Puntos: 1
Re: Obtener Respuesta de otra WEB

Azrael666

Gracias por tu pronta respuesta...
ya configure todo pero me tira este error

HTTP/1.1 302 Found Date: Wed, 11 Jul 2007 08:51:18 GMT Server: Apache Location: https://www.web2.com/script.php Content-Length: 216 Connection: close Content-Type: text/html; charset=iso-8859-1

Found


La URL q aparece en el error "https://www.web2.com/script.php" es correcta.. puede ser q lo tengan protegido contra este tipo de conexiones mediantes programacion?
o deberia funcionar con este ejemplo?

Gracias de nuevo!
__________________
Saludos :adios: :adios: :adios:
  #4 (permalink)  
Antiguo 11/07/2007, 03:24
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: Obtener Respuesta de otra WEB

como te dije en el ejemplo tienes que ponerlo sin el http:// y sin las www

pon solo: web2.com/script.php

en lo de no poner las "www" no estoy muy seguro, porque con el host que trabajaba yo no las usaba (era del tipo http://subdominio.dominio.com, por lo que yo solo tenia que cojer "subdominio.dominio.com", prueba con y sin ellas y ya me comentas, pero eso si, acuerdate de quitar el "http://"

a mi esa función me funcionaba, puede que tengan que darte algun tipo de persmisos desde ese servidor (cuando yo la usaba era para pagos por sms y no hablaba directamente con la empresa, de eso se encargaban otros jeje)
__________________
ALOZORRO v5.0 (ahora en .es)
  #5 (permalink)  
Antiguo 11/07/2007, 03:34
Avatar de granbosteron  
Fecha de Ingreso: agosto-2004
Mensajes: 164
Antigüedad: 19 años, 7 meses
Puntos: 1
Re: Obtener Respuesta de otra WEB

Si!, eso lo tuve en cuenta! No use nunca el HTTP ..

probe ahora con "web2.com/script.php" y con "www.web2.com/script.php" .. y me tira el mismo error!

HTTP/1.1 302 Found Date: Wed, 11 Jul 2007 08:51:18 GMT Server: Apache Location: https://www.web2.com/script.php Content-Length: 216 Connection: close Content-Type: text/html; charset=iso-8859-1

Found


es como q la funcion busca en el servidor ese archivo y luego completa la URL cuando te tira el error!.....

gracias de nuevo!
__________________
Saludos :adios: :adios: :adios:
  #6 (permalink)  
Antiguo 11/07/2007, 03:56
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: Obtener Respuesta de otra WEB

mmm.. tendrá algo que ver con el content-lenght?? será que es muy largo, no debería, pero podrías probar con uno mas corto a ver..

haz esto: crea una pagina de prueba "prueba.php" que reciba los datos que deberia recibir "script.php" y haz una prueba desde tu localhost, sin enviar el post a otra direccion: $host="prueba.php" a ver que resultado te da o si te sigue dando el error. Prueba tambien a meterle solo dos variables que sean dos palabras cortas (casa y perro por ejemplo) a ver si es por el numero de variables que envias (que no deberia) o su tamaño.
__________________
ALOZORRO v5.0 (ahora en .es)
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 15:04.