Jak mogę wysłać dane POST do adresu URL w PHP (bez formularza)?Dane POST do adresu URL w PHP
Mam zamiar użyć go do wysłania zmiennej do wypełnienia i przesłania formularza.
Jak mogę wysłać dane POST do adresu URL w PHP (bez formularza)?Dane POST do adresu URL w PHP
Mam zamiar użyć go do wysłania zmiennej do wypełnienia i przesłania formularza.
Jeśli szukasz do wysłania danych do adresu URL z kodu PHP sam (bez korzystania z formularza HTML) można zrobić z dyni. Będzie to wyglądać tak:
$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);
Ten wyśle zmienne POST do określonego adresu URL, a co powraca strona będzie w $ odpowiedzi.
Twoje pytanie nie jest szczególnie jasne, ale jeśli chcesz wysłać dane POST do adresu URL bez użycia formularza, możesz użyć funkcji fsockopen lub curl.
cURL mniej można użyć w 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);
file_get_contents jest często wyłączony na hostach innych firm, a cURL jest jedyną opcją – KryptoniteDove
O ile twoje rozwiązanie jest poprawne, myślę, że OP chciał wiedzieć, jak to zrobić za pomocą formularza HTML. Chociaż pytanie nie było zbyt jasne. –
Nie mogliśmy zrozumieć problemu, ale blokuje on program. – albatross
dbać o to, co robią 'CURLOPT_FOLLOWLOCATION',' CURLOPT_HEADER' i 'CURLOPT_RETURNTRANSFER'? Wolę nie kopiować kodu, którego nie rozumiem w pełni. –