在一台服务器上提交表单,处理它,然后将结果发布到另一个域

时间:2012-10-17 16:41:53

标签: php forms

我在一个页面上有一个表单,其操作设置为/process.php

在process.php中,我对表单进行了验证,并且还写入了它所在服务器上的数据库。

写入数据库后我想做的是将变量发布到另一个域,然后以不同的方式处理这些变量。

2 个答案:

答案 0 :(得分:1)

使用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/

答案 1 :(得分:0)

你可以使用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;