У меня есть форма на одной странице с действием, установленным в /process.php
В process.php у меня есть валидация формы, а также она записывается в базу данных на сервере, на котором она сидит.
То, что я хотел бы сделать после того, как оно записано в базу данных, отправляет переменные в другой домен, которые затем будут обрабатывать эти переменные по-разному.
вы можете использовать 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;
Пример использования 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/