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.