アクションが/process.phpに設定されたフォームが1ページにあります
process.php内で、フォームの検証が行われ、フォームが置かれているサーバー上のデータベースに書き込まれます。
データベースに書き込んだ後でやりたいのは、変数を別のドメインに投稿して、それらの変数を別の方法で処理することです。
curlの使用例:
$name = 'Test';
$email = 'test@gmail.com';
$ch = curl_init(); // initialize curl handle
$url = "http://domain2.com/process.php";
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // times out after 10s
curl_setopt($ch, CURLOPT_POST, 1); // set POST method
curl_setopt($ch, CURLOPT_POSTFIELDS, "text=$name&name=$email"); // post fields
$data = curl_exec($ch); // run the whole process
curl_close($ch);
カールのない例:http ://wezfurlong.org/blog/2006/nov/http-post-from-php-without-curl/
同じようにfile_get_contentsを使用できます。
例:
$name="foobar";
$messge="blabla";
$postdata = http_build_query(
array(
'name' => $name,
'message' => $message
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = @file_get_contents('http://yourdomain.com/process_request.php', false, $context);
if($http_response_header[0]=="HTTP/1.1 404 Not Found"):
echo "iam 404";
elseif($http_response_header[0]=="HTTP/1.1 200 OK"):
echo "iam 200";
else:
echo "unknown error";
endif;