【发布时间】:2011-10-25 08:44:31
【问题描述】:
我有 2 个 PHP 脚本,一个驻留在服务器 A 上,另一个驻留在服务器 B 上。我需要将 PHP A 通过 POST 接收的变量传递给 PHP B,而不需要重定向页面。我该怎么做?
【问题讨论】:
我有 2 个 PHP 脚本,一个驻留在服务器 A 上,另一个驻留在服务器 B 上。我需要将 PHP A 通过 POST 接收的变量传递给 PHP B,而不需要重定向页面。我该怎么做?
【问题讨论】:
你可以使用curl,
$curlHandler = curl_init();
$curlOpts = array(
CURLOPT_URL => "http://www.example.com/Target.php",
CURLOPT_FRESH_CONNECT => true,
CURLOPT_HEADER => false,
CURLOPT_POSTFIELDS => http_build_query($_POST, "", "&"),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERAGENT => "MyScript/0.1"
);
curl_setopt_array($curlHandler, $curlOpts);
if (false===($responseString=curl_exec($curlHandler))) {
exit("0 - No connection to server.");
}
echo $responseString;
如果您将 POST-Data 发送到此脚本,它将发送到 http://www.example.com/Target.php。
如果它得到$_POST["Foo"] = 10,那么它会将$_POST["foo"] = 10 发送到Target.php。
它使用所有具有相同名称和值的 Post 变量。
编辑:
如果你想发送一些变量,你可以这样做:
$vars = array("key" => "value",
"key2" => "value2",
...
);
这样做后,您必须更改上面示例中的行:
CURLOPT_POSTFIELDS => http_build_query($_POST, "", "&"),
需要改成
CURLOPT_POSTFIELDS => http_build_query($vars, "", "&"),
【讨论】:
$curlHandler = curl_init();之前声明所有的POST变量?
通过在您的 PHP 脚本中执行 POST 请求。有很多关于如何做到这一点的教程(例如this one)。您只需通过这种方式将 POST 参数值传输到第二台服务器,无需进行页面重定向。
【讨论】:
您可以使用php curl function 将您的变量发布到另一台服务器
【讨论】:
你知道jquery吗?它有一个简单的方法来做你想要的。这很容易学习。检查这个例子http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/
【讨论】: