2010-06-20 27 views

Respuesta

157

Si usted está buscando para enviar datos a una dirección URL de la propia código PHP (sin necesidad de utilizar un formulario HTML) que se puede hacer con rizo. Se parece a esto:

$url = 'http://www.someurl.com'; 
$myvars = 'myvar1=' . $myvar1 . '&myvar2=' . $myvar2; 

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $myvars); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

$response = curl_exec($ch); 

Esto enviará las variables POST a la URL especificada, y lo que la página vuelve estarán en respuesta $.

+1

En la medida en que su solución es correcta, creo que OP deseaba saber cómo hacerlo con formato HTML. Aunque la pregunta no era muy clara. –

+0

No pudimos entender el problema pero bloquea el programa. – albatross

+0

se preocupan por elaborar lo que 'CURLOPT_FOLLOWLOCATION',' CURLOPT_HEADER' y 'CURLOPT_RETURNTRANSFER' hacen? Prefiero no copiar el código que no entiendo completamente. –

10

Su pregunta no es particularmente clara, pero en caso de que desee enviar datos POST a una url sin usar un formulario, puede usar fsockopen o curl.

Aquí es a pretty good walkthrough of both

+0

vínculo se rompe. – kapa

+0

Link rot strikes again ... – jfoucher

+2

El enlace funciona ahora. –

57

curl-menos se puede utilizar en php5

$url = 'URL'; 
$data = array('field1' => 'value', 'field2' => 'value'); 
$options = array(
     'http' => array(
     'header' => "Content-type: application/x-www-form-urlencoded\r\n", 
     'method' => 'POST', 
     'content' => http_build_query($data), 
    ) 
); 

$context = stream_context_create($options); 
$result = file_get_contents($url, false, $context); 
var_dump($result); 
+5

file_get_contents a menudo está deshabilitado en hosts de terceros y cURL es la única opción – KryptoniteDove

Cuestiones relacionadas