HTTPページのWebサイトからHTTPSページの別のWebサイトに暗号化された変数を送信しようとしています。これを実現するために使用しているコードは、次のとおりです。
$VARIABLE = 'myvariable';
function do_post_request($url, $data, $optional_headers = null)
{
$params = array('http' => array(
'method' => 'POST',
'content' => $data
));
if ($optional_headers !== null) {
$params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp) {
throw new Exception("Problem with $url, $php_errormsg");
}
$response = @stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url, $php_errormsg");
}
return $response;
}
do_post_request('https://localhost/myphpfile.php', $VARIABLE);
これはHTTPでは完全に機能しますが、HTTPSでは機能しませんが、これは、接続が拒否される原因となるWAMPを実行しているローカルサーバーを使用しているためだと思います。
とにかく私の質問は、データが渡されるようにするために「myphpfile」に何が必要かということです。
前もって感謝します!
更新:うわー、すべての迅速な返信の人に感謝します!あなたの多くが提案したように、私はちょうどcURLをざっと見て、これがグーグルでうそをついているのを見つけました:
$url = 'https://localhost/myphpfile.php';
// Initialize session and set URL.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// Set so curl_exec returns the result instead of outputting it.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
// Get the response and close the channel.
$response = curl_exec($ch);
curl_close($ch);
VERIFYHOSTパラメータが原因で有効な証明書がチェックされないことはわかっていますが、テストサーバーから移動するまで待ってから取得すると思いますが、データを取得する方法を教えてください。 'myphpfile'に送信されましたか?