Enviar datos POST en PHP sin formulario, utilizando fsockopen.
Hace unos días, me encontré con la necesidad de enviar una serie de datos, a una página, utilizando el método POST.
Al principio pensé en realizar esto con la función “header” pero no lo conseguí. Entonces comencé a buscar en google y encontré algunos sitios que utilizaban “curl” para el envió de datos.
Los ejemplos que encontré con “curl”, parecían sencillos de implementar, el único problema es que hay que tener “curl” instalado en el servidor.
Seguí buscando en google y encontré otras páginas que explicaban como hacer esto con “fsockopen”.
Una vez utilice “fsockopen” para conectar a un servidor POP3 y obtuve buenos resultados, a si que, me decidí a intentar conseguir mi objetivo inicial utilizando esta función.
A continuación muestro el código de dos ficheros php. Un fichero llamado “enviarPOST.php” y otro llamado “variablesPOST.php”.
Como podréis imaginar por el nombre de los ficheros “enviarPOST.php” se encarga de enviar a “variablesPOST.php” los datos que este espera.
enviarPOST.php
<?php /** * CONFIGURACIÓN */ $carpeta = "/tmp/a/variablesPOST.php"; $host = "localhost"; $datos = "variable=correctoOK"; $size = strlen($datos); $c = fsockopen($host, "80"); if(!$c) { echo "Error!"; } //Enviar datos POST fputs($c, "POST " . $carpeta . " HTTP/1.0\r\n"); fputs($c, "Content-Type: application/x-www-form-urlencoded\r\n"); fputs($c, "Content-Length: " . $size . "\r\n"); fputs($c, "Connection: close \r\r\n\n"); fputs($c, $datos . "\r\n"); //Obtener datos while(!feof($c)) { $datoss .= fgets($c,4096); } echo $datoss; ?>
variablesPOST.php
<?php echo "La variable es: " . $_POST["variable"]; ?>
No hay artículos relacionados




















Hola, en caso de necesitar enviar mas de una variable por el POST como podría hacerlo, es que lo he intentado pero no me funciona… Gracias
Hola,
solo tienes que cambiar la linea:
$datos = “variable=correctoOK”;
por
$datos = “variable=valor1&variable2=valor2&variable3=valor3″;
para enviar por ejemplo tres variables. Los datos de cada variable deben estar codificados con urlencode().
Ejemplo:
$datos = “variable=” . urlencode(”valor1″);
$datos .= “variable2=” . urlencode(”valor2″);
…
Hola,
Y si yo quisiera enviar un fichero (por ejemplo una imagen), como lo haria.
Ni idea. Voy a intentarlo.