viernes, 17 de agosto de 2012

Enviar form con Curl


Curl es una librería que viene integrada con PHP, algunos servidores no la tienen activada así que a veces es necesario activarlas desde el archivo php.ini, si este es tu caso busca el archivo php.ini que está en la carpeta php, abrelo con un editor de texto y busca la siguiente línea... ;extension=php_curl.dll
 
Le quitas el punto y coma y guardas el php.ini, reinicias el servidor apache y listo para usar.

Ahora vamos a ver un ejemplo de como enviar un formulario por el método POST y oculto tras un proxy ...

Para buscar proxys la siguiente página es bastante buena ... http://proxy-list.org

<?php
/* By http://php-estudios.blogspot.com */

$url = "http://www.ejemplo.com/login.php";
$proxy = "http://direcciónproxy:puerto";

//Se inicia CURL en el servidor especificado
 $ch = curl_init($url);

//Se inicia el PROXY
curl_setopt($ch, CURLOPT_PROXY, $proxy);

//Parámetros que se enviarán con el formulario
$campo_usuario = "root";
$valor_usuario="root";
$campo_password="password";
$valor_password="123456";
$parametros = "$campo_usuario=$valor_usuario&$campo_password=$valor_password";

//Se indica que es el método POST
curl_setopt ($ch, CURLOPT_POST, 1);

//Se añaden los parámetros
curl_setopt ($ch, CURLOPT_POSTFIELDS, $parametros);

//Máximo de tiempo esperando una respuesta del servidor
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 20);

 //Que nos devuelva las cabeceras de la petición
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

//Para saber si se redirige
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

//Obtiene la dirección url
curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);

// ejecutamos la petición
curl_exec($ch);

// cerramos
curl_close($ch);
?>




No hay comentarios: