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:
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).<?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 problema es que al analizar el envío curl con http headers me muestra lo siguiente:
Código:
¡¡¡El envío no se realiza con post, si no mediante get!!!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
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.