2010-06-20 3 views

Répondre

157

Si vous cherchez à publier des données sur une URL à partir du code PHP lui-même (sans utiliser un formulaire HTML), il peut être fait avec boucle. Il ressemblera à ceci:

$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); 

Cela envoie les variables de poste à l'adresse indiquée, et ce que les déclarations de page seront en réponse de $.

+1

Dans la mesure où votre solution est correcte, je pense que l'OP voulait savoir comment le faire avec le formulaire HTML. Bien que la question n'était pas très claire. –

+0

Nous ne pouvions pas comprendre le problème, mais il verrouille le programme. – albatross

+0

d'élaborer ce que 'CURLOPT_FOLLOWLOCATION',' CURLOPT_HEADER' et 'CURLOPT_RETURNTRANSFER' font? Je préfère ne pas copier le code que je ne comprends pas complètement. –

10

Votre question n'est pas particulièrement claire, mais si vous souhaitez envoyer des données POST à ​​une URL sans utiliser de formulaire, vous pouvez utiliser fsockopen ou curl.

est ici a pretty good walkthrough of both

+0

lien est rompu. – kapa

+0

Link pourri à nouveau ... – jfoucher

+2

Le lien fonctionne maintenant. –

57

papillotes moins vous pouvez utiliser dans 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 est souvent désactivé sur les hôtes tiers et cURL est la seule option – KryptoniteDove