Foros del Web » Programando para Internet » PHP »

Problema con cURL para redirigir

Estas en el tema de Problema con cURL para redirigir en el foro de PHP en Foros del Web. saludos he enviado unos valores por curl a una web que redirecciona esos valores a otro archivo, como puedo obtener los valores de regreso que ...
  #1 (permalink)  
Antiguo 18/04/2012, 07:57
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 0
Problema con cURL para redirigir

saludos he enviado unos valores por curl a una web que redirecciona esos valores a otro archivo, como puedo obtener los valores de regreso que me reenvia el otro archivo a los que fue redireccionado
algo como
Cita:
return $result;
o algo asi
  #2 (permalink)  
Antiguo 18/04/2012, 08:42
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: [APORTE] file_get_contents(), cURL, HTTP_Request

Cita:
Iniciado por jeshua3001 Ver Mensaje
saludos he enviado unos valores por curl a una web que redirecciona esos valores a otro archivo, como puedo obtener los valores de regreso que me reenvia el otro archivo a los que fue redireccionado
algo como o algo asi
En los ejemplos te indica como obtener el resultado de una página y luego los imprime ¿no te resultó?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 18/04/2012, 09:03
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: [APORTE] file_get_contents(), cURL, HTTP_Request

he provado todo lo que dice hay y nada este es el curl que tengo
Cita:
$cid=curl_init('https://www.paginaaredirigir/prueba.php');
curl_setopt($cid, CURLOPT_USERAGENT, 'Opera/9.23 (Windows NT 5.1; U; en)');
curl_setopt($cid, CURLOPT_POST, true);
curl_setopt($cid, CURLOPT_POSTFIELDS, $query);
curl_setopt($cid, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($cid, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cid, CURLOPT_TIMEOUT, 90);
curl_setopt($cid, CURLOPT_FOLLOWLOCATION, true);
$result=curl_exec($cid);
curl_close($cid);
en problema es que 'https://www.paginaaredirigir/prueba.php' reenvia los valores que le paso a 'https://www.paginaaredirigir/respuesta.php' pero no me sigue la redireccion a respuesta.php o respuesta.php no me esta regresando los valores
  #4 (permalink)  
Antiguo 18/04/2012, 11:22
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: [APORTE] file_get_contents(), cURL, HTTP_Request

Cita:
Iniciado por abimaelrc Ver Mensaje
En los ejemplos te indica como obtener el resultado de una página y luego los imprime ¿no te resultó?
un poco de ayuda:: estos son los valores que tengo que pasar a traves de curl pero como ven siempre redirige la web

Cita:
<form name="formulario" method="POST" action="https://www.pago-electronico.com/site_bdv/eredeBank_po.php">
<input type="text" name="orderId" id="order" size="30" value="<?=date('Hisdmy')?>">
<input type="text" name="total" id="monto" size="30" value="1200">
<input type="hidden" name="tipo_pago" value="1">
<input type="hidden" name="merchId" value="72555555">
<input type="hidden" name="storeId" value="0">
<input type="hidden" name="termId" value="4001">
<input type="hidden" name="currId" value="816">
<input type="hidden" name="entId" value="201">
<input type="hidden" name="strvalue2" value="http://www.forosdelweb.com/">
<input type="hidden" name="digest" id="digest" value="">
<input type="text" value="jeshua3001" name="cc_name">
<input type="text" value="16987005" name="cc_cedula">
<input type="text" value="V" name="cc_type">
<input type="text" value="4560156925870529" name="cc_number">
<input type="text" value="286" name="cc_cvv">
<input type="text" value="06" name="cc_expmonth">
<input type="text" value="2015" name="cc_expyear">

<input type="submit" value="Click para enviar">
</form>
  #5 (permalink)  
Antiguo 18/04/2012, 11:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: [APORTE] file_get_contents(), cURL, HTTP_Request

Tienes que poner el flag de CURLOPT_FOLLOWLOCATION en true para que cURL siga la redirección.

Saludos.
  #6 (permalink)  
Antiguo 18/04/2012, 11:59
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: [APORTE] file_get_contents(), cURL, HTTP_Request

lo he echo pero mi servidor como que tiene safe_mode desactivado hay alguna otra manera que no sea con followlocation?
  #7 (permalink)  
Antiguo 18/04/2012, 12:00
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: [APORTE] file_get_contents(), cURL, HTTP_Request

Cita:
$cid=curl_init('https://www.pago-electronico.com/site_bdv/eredeBank_po.php');
curl_setopt($cid, CURLOPT_USERAGENT, 'Opera/9.23 (Windows NT 5.1; U; en)');
curl_setopt($cid, CURLOPT_POST, 1);
curl_setopt($cid, CURLOPT_POSTFIELDS, $query);
curl_setopt($cid, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($cid, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cid, CURLOPT_TIMEOUT, 90);
curl_setopt($cid, CURLOPT_FOLLOWLOCATION, true);
$result=curl_exec($cid);
curl_close($cid);
no hace nada debe ser que no sigue las redirecciones
  #8 (permalink)  
Antiguo 18/04/2012, 13:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con cURL para redirigir

Si haces un var_dump($result) ¿que sale? (activa la opción CURLOPT_HEADER).

Saludos.
  #9 (permalink)  
Antiguo 18/04/2012, 15:04
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Problema con cURL para redirigir

esto el lo que me imprime bool(false)
  #10 (permalink)  
Antiguo 18/04/2012, 15:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con cURL para redirigir

Sí es false, entonces imprime el valor de curl_error() este te indica la causa del error.

Saludos.
  #11 (permalink)  
Antiguo 18/04/2012, 15:38
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Problema con cURL para redirigir

la coloque de esta forma
Cita:
$cid=curl_init('https://www.pago-electronico.com/site_bdv/eredeBank_po.php');
curl_setopt($cid, CURLOPT_USERAGENT, 'Opera/9.23 (Windows NT 5.1; U; en)');
curl_setopt($cid, CURLOPT_POST, 1);
curl_setopt($cid, CURLOPT_POSTFIELDS, $query);
curl_setopt($cid, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($cid, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cid, CURLOPT_TIMEOUT, 90);
curl_setopt($cid, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($cid, CURLOPT_HEADER, true);
$result=curl_exec($cid);
echo 'Curl error: ' . curl_error($cid);
curl_close($cid);
y me devolvio
Cita:
Curl error: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
  #12 (permalink)  
Antiguo 18/04/2012, 16:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con cURL para redirigir

Pues ahí te lo dice, el certificado SSL es incorrecto, por lo tanto no puede hacer la llamada (no tiene nada que ver con redirigir).

Saludos.
  #13 (permalink)  
Antiguo 18/04/2012, 16:14
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Problema con cURL para redirigir

pero usando el formulario si me hace el llamado correctamente
Cita:
<form name="formulario" method="POST" action="https://www.pago-electronico.com/site_bdv/eredeBank_po.php">
<input type="text" name="orderId" id="order" size="30" value="<?=date('Hisdmy')?>">
<input type="text" name="total" id="monto" size="30" value="1200">
<input type="hidden" name="tipo_pago" value="1">
<input type="hidden" name="merchId" value="72555555">
<input type="hidden" name="storeId" value="0">
<input type="hidden" name="termId" value="4001">
<input type="hidden" name="currId" value="816">
<input type="hidden" name="entId" value="201">
<input type="hidden" name="strvalue2" value="http://www.forosdelweb.com/">
<input type="hidden" name="digest" id="digest" value="">
<input type="text" value="jeshua3001" name="cc_name">
<input type="text" value="16987005" name="cc_cedula">
<input type="text" value="V" name="cc_type">
<input type="text" value="4560156925870529" name="cc_number">
<input type="text" value="286" name="cc_cvv">
<input type="text" value="06" name="cc_expmonth">
<input type="text" value="2015" name="cc_expyear">

<input type="submit" value="Click para enviar">
</form>
sera que curl no me esta aceptando el ssl
  #14 (permalink)  
Antiguo 18/04/2012, 16:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con cURL para redirigir

¿Estas ejecutando el PHP en un servidor local? ¿O en tu sitio web? El problema es que no puede verificar el certificado, cuando lo haces por el browser usas tu conexión local, para "mitigar" puedes poner las opciones:
Código PHP:
Ver original
  1. curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
  2. curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);

Aunque no es lo mejor ya que debes de verificar el certificado.

Saludos.
  #15 (permalink)  
Antiguo 18/04/2012, 16:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con cURL para redirigir

También puedes revisar esto:

http://davidwalsh.name/php-ssl-curl-error

Saludos.
  #16 (permalink)  
Antiguo 18/04/2012, 16:28
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Problema con cURL para redirigir

desde las dos partes tanto de mi servidor web como desde local ingresando eso que me dices y haciendo un echo me aparece esto

Cita:
HTTP/1.1 200 OK Date: Wed, 18 Apr 2012 22:20:08 GMT Server: Apache/2.2.3 (CentOS) X-Powered-By: PHP/5.1.6 Set-Cookie: PHPSESSID=p5b545ii1kd9ggdugunb0nigu4; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-Length: 952 Connection: close Content-Type: text/html; charset=UTF-8
sera que te puedo enviar todo el codigo por correo para que lo revises y me digas que esta mal
  #17 (permalink)  
Antiguo 18/04/2012, 20:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con cURL para redirigir

Pues al parecer ya sale correcto, debería de mostrarte algún resultado, ya que en las cabeceras al menos no se ve un redirect.

Saludos.
  #18 (permalink)  
Antiguo 18/04/2012, 20:41
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Problema con cURL para redirigir

He visto que las redirecciones las realizan con javascripts por lo que no me recibe los valores el siguiente archivo al que es redirigido, como se haria en ese caso ya que he intentado todo y nada me da resultado
  #19 (permalink)  
Antiguo 18/04/2012, 20:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con cURL para redirigir

En ese caso no puedes redirigir con cURL, necesitas usar expresiones regulares para capturar la URL y hacer una petición al archivo al que vas a redirigir (o sea debes de usar 2 peticiones cURL) ej:

- Primera petición cURL
- Capturas URL con expresiones regulares (en bloque javascript)
- Haces una segunda petición cURL a la URL que capturaste

Saludos.
  #20 (permalink)  
Antiguo 18/04/2012, 20:48
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Problema con cURL para redirigir

Me puedes dar un ejemplo de lo que me dices? Es que ya estoy cerrado de probar con tantas funciones
  #21 (permalink)  
Antiguo 18/04/2012, 21:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con cURL para redirigir

No es una función, tienes que diseñar una expresión regular para capturar la redirección, ya que cURL no interpreta el código en Javascript, simplemente te regresa todo el resultado.

Es por eso que debes de hacer lo que te dije, dos peticiones, la primera para enviar las variables y obtener la pagina a redirigir, y la segunda para ir a la pagina que hace la redirección.

Saludos.
  #22 (permalink)  
Antiguo 19/04/2012, 14:44
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Problema con cURL para redirigir

Saludos, amigo he revisado y yo creo que mi problema es que la web que estoy tratando de enviar los valores se reenvia a nivel de localhost, hay alguna forma de decirle a curl que no busque los archivos en localhost sino que siga siempre la pagina a la que quiero enviar los valores?

que linea puedo agregar para que siga siempre redireccionando a https://www.pago-electronico.com/pag...ireccionar.php y no desde donde realizo el llamado osea localhost/paginas-a-redireccionar.php
  #23 (permalink)  
Antiguo 19/04/2012, 14:50
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Problema con cURL para redirigir

algo como followlocation en => https://www.pago.com/
para que siga las redireecione en ese host

Última edición por jeshua3001; 23/04/2012 a las 07:32
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 18:23.