如何从mysite(xyz.com)向其他网站(abc.com)提交表单时重定向或发送一些变量?

时间:2010-09-30 11:43:29

标签: php

我想在我的网站上提交表单时,将一个变量从我的网站传递到其他网站。

请帮帮我。

提前致谢。

汉字

4 个答案:

答案 0 :(得分:0)

如果表单是通过POST提交的,则无法重定向用户。无法使HTTP重定向包含提交给原始接收服务器的POST变量。

抱歉!

PS - 如果有目的网站的API,请考虑使用它们!

答案 1 :(得分:0)

添加到HTML以形成

<input type="hidden" name="ParamName" value="ParamValue" />

使用PHP在目标站点检查表单时使用$ _POST ['ParamName']获取此变量,如:

if (isset($_POST['ParamName'])) {
    echo 'I\'ve got ParamName - '.$_POST['ParamName'];
}

答案 2 :(得分:0)

您可以使用AJAX将表单提交到您的站点,完成后使用javascript在表单上触发提交事件。

例如,使用jQuery可以调用

$("#myform").trigger("submit");

可能适用于所有现代浏览器。

答案 3 :(得分:0)

确保我理解 -

您是否希望一台服务器在重定向到单独的服务器时收到论坛的结果?

我可以想象的唯一实际原因是网络钓鱼骗局,但假设你有一些光荣的意图,你有几个选择。

将表单提交给abc.com,然后让abc.com处理变量并发送重定向标头以将用户发送回xyz.com。此方法要求您在abc.com和xyz.com上拥有自己的网站空间,以便创建表单和处理表单。

xyz.com:
<form action="abc.com/..." method="get">
    <input type="text" name="value" />
    <input type="submit" />
</form>

abc.com:
<?php
    /* Do something with $_GET["value"] */
    header("Location: xyz.com");
?>

使用AJAX将表单内容提交到abc.com,同时将表单提交给xyz.com(我对javascript提供的源代码不够舒服)

让xyz.com将值提交给abc.com

<?php
    $output = file_get_contents("abc.com?value=".$_GET["value"]);
?>

您还可以创建一个stream_context,将POST发送到另一台服务器。

<?php
$context = stream_context_create(array( 
'http' => array( 
    'method'  => 'POST',
    'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
    'content' => http_build_query(array('value' => $value)),
    'timeout' => 90,
    ), 
));
$ret = file_get_contents('abc.com', false, $context);
?>

或者,307重定向(临时重定向)应该发送POST数据。

<?php
header("HTTP/1.0 307 Temporary Redirect", $replace=true, 307);
header("Location: xyz.com");
?>