2013-10-18 22 views
13

POST verilerini web formu kullanmadan göndermek için bir yol var mı? Üçüncü taraf bir ödeme işlemcisi ile çalışıyorum ve ödemeyi manuel olarak gönderme seçeneğim var ancak verilerin POST formatı olması gerekiyor.PHP Web formu olmayan POST verileri

Komut dizimi CRON işi olarak çalıştırmayı planlıyorum ve otomatik olduğundan, web formu gönderimi aracılığıyla kullanıcı girişi yok.

Şimdiden teşekkürler.

+0

cURL http://php.net/manual/en/book.curl.php Sen guzzle kullanabilirsiniz – cmorrissey

+0

: http://guzzlephp.org/ – m4t1t0

cevap

20

deneyin CURL

http://php.net/manual/en/book.curl.php

//set POST variables 
$url = 'http://domain.com/get-post.php'; 
$fields = array(
         'lname' => urlencode($last_name), 
         'fname' => urlencode($first_name), 
         'title' => urlencode($title), 
         'company' => urlencode($institution), 
         'age' => urlencode($age), 
         'email' => urlencode($email), 
         'phone' => urlencode($phone) 
       ); 

//url-ify the data for the POST 
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
rtrim($fields_string, '&'); 

//open connection 
$ch = curl_init(); 

//set the url, number of POST vars, POST data 
curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_POST, count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 

//execute post 
$result = curl_exec($ch); 

//close connection 
curl_close($ch); 
+5

budur güçlü ince [örnek] (http: // davidwalsh. İsim/curl-post) orada kaldın. – Andy

+0

Merhaba @Andy, cevabı kendi gereksinimlerine göre uyarlayabilirdim, ancak herhangi bir açıklama yapmadığından iyi bir örnek olduğunu düşünüyorum ;-) – VancleiP

+0

@VanckeiP CURLOPT_POST hakkında ne eklediniz "count ($ fields)" - Yani bu alanların sayısını sağlamak gerekiyor? Gördüğüm çoğu örnek sadece bir "1" ekler .. bu konuda bilgi bulmak zor. – Galivan

1

Özel bir bağlam ile cURL uzantısı, hatta file_get_contents() kullanabilirsiniz.