Foros del Web » Programando para Internet » PHP »

Problema con curl y formularios post.

Estas en el tema de Problema con curl y formularios post. en el foro de PHP en Foros del Web. Estoy intentando apreder a utilizar curl pero me encuentro con un problema nada más empezar. Tengo un formulario sencillo que envía un nombre, apellido y ...
  #1 (permalink)  
Antiguo 21/06/2013, 03:56
 
Fecha de Ingreso: febrero-2010
Mensajes: 25
Antigüedad: 14 años, 9 meses
Puntos: 0
Problema con curl y formularios post.

Estoy intentando apreder a utilizar curl pero me encuentro con un problema nada más empezar.
Tengo un formulario sencillo que envía un nombre, apellido y email mediante post y otro archivo php que muestra las variables enviadas.
Cuando envío el formulario, capturo las cabeceras con con el plugin http headers de firefox y me muestra esto:

Código:
http://localhost/a/formulario/usuarionuevo.php

POST /a/formulario/usuarionuevo.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost/a/formulario/index.php
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 58
nombre=Asaber&apellido=Garc%EDa&email=asaber%40hotmail.com

HTTP/1.1 200 OK
Date: Fri, 21 Jun 2013 09:27:20 GMT
Server: Apache/2.2.3 (Win32) DAV/2 mod_ssl/2.2.3 OpenSSL/0.9.8d mod_autoindex_color PHP/5.1.6
X-Powered-By: PHP/5.1.6
Content-Length: 56
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

Después envío los datos mediante curl desde el siguiente código:

Código:
<?php
	$nom = "Asaber";
	$ape = "García";
	$ema = "[email protected]";

	$ch= curl_init("http://localhost/a/formulario/usuarionuevo.php");
	curl_setopt ($ch, CURLOPT_POST, 1);
	curl_setopt ($ch, CURLOPT_POSTFIELDS, "nombre=$nom&apellido=$ape&email=$ema");
        $res=curl_exec ($ch);
	curl_close($ch);

?>
El resultado final es el mismo en ambos casos, tanto con el formulario como con el envío curl se muestran los datos finales por lo que el código funciona correctamente (o al menos lo parece).
El problema es que al analizar el envío curl con http headers me muestra lo siguiente:

Código:
http://localhost/a/formulario/curl.php

GET /a/formulario/curl.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive

HTTP/1.1 200 OK
Date: Fri, 21 Jun 2013 09:30:40 GMT
Server: Apache/2.2.3 (Win32) DAV/2 mod_ssl/2.2.3 OpenSSL/0.9.8d mod_autoindex_color PHP/5.1.6
X-Powered-By: PHP/5.1.6
Content-Length: 56
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
¡¡¡El envío no se realiza con post, si no mediante get!!!
O algo se me escapa o algo me falta.
¿Alguien me puede explicar por qué pasa esto?
¿Conocéis alguna forma mejor de analizar lo que el navegador envía con los formularios, cabeceras, etc?

Gracias por adelantado.
  #2 (permalink)  
Antiguo 21/06/2013, 06:50
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Problema con curl y formularios post.

tengo entendido que cuando usas cURL entre php y php el navegador No interviene, porque en dicho caso estás usando PHP cURL como si fueses un cliente., por eso creo el el plugin de FF sólo te está mostrando la petición original que haces para llamar al archivo php que ejecuta la petición cURL, por lo tanto es GET, dudo realmente que dicho plugin vea el post interno

lo que te aconsejo es verificar en el archivo de destino si te están llegando las variables post, podrías comprobarlo escribiéndolo en un archivo.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 21/06/2013, 07:45
 
Fecha de Ingreso: febrero-2010
Mensajes: 25
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema con curl y formularios post.

Vale, ya lo voy pillando.
Las variables llegan perfectamente.

Lo que busco es una forma de poder comparar las cabeceras enviadas desde por ejemplo la página de login de una web y poder comparar con lo que envío yo mediante curl para conseguir el mismo login o buscar las cabeceras necesarias en el login y poder reproducirlo mediante curl.

Etiquetas: curl, formulario, formularios, html, variables
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 14:44.