当表单操作进入第三方站点时,将数据传递给“谢谢”页面

时间:2013-07-26 23:37:49

标签: php forms

我有一个网络表单,收集用户的邮政编码作为字段之一并发布到第三方网站...

<form name = "foo" action="https://thirdpartysite.com" method="post">

表单有一个“redirect_link”字段,告诉第三方网站重定向到我的感谢页面,因此表单处理就在他们身边。如果我正在进行表单处理,我可以将邮政编码存储在会话变量中,然后将其保存到我的数据库中,然后以这种方式将其传递给感谢页面。但由于表单处理是由其他人完成的,我不确定如何访问该邮政编码字段,将其存储在某处并将其传递给我的感谢页面。我想也许我可以通过使用javascript获取邮政编码并将其存储在php会话变量中来做到这一点?我不确定这是否有用,或者怎么做。

1 个答案:

答案 0 :(得分:1)

如果表单中有“redirect_link”字段,您是否只能将其作为GET参数包含在其中?

<input value="http://www.somesite.com/thankyou.php?zip=12345" type="hidden" name="redirect_link"  />

您需要在邮政编码输入中添加JavaScript,以便在更新时更新隐藏字段。

正如您所提到的,另一个选择是使用PHP会话,但由于它还需要会话,因此您不会在隐藏字段中执行任何操作(例如,如果人们禁用了会话cookie)。 / p>

我能想到的第三个选择是,如果可能,将使用您自己的表单使用cURL将数据提交到第三方站点。这显然只有在用户不需要在远程站点上做任何事情时才有效:

$url = 'http://www.othersite.com/script.php';
$data = array(
    'name' => $name,
    'email' => $email,
    ...
);

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($data));
curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($data));

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

最后,通常会将用户重定向回您网站的网站可以自动将某些内容附加到返回网址或向其发送POST数据。检查您使用的网站的API是否具备此功能。如果是这样,这可能是最简单和最好的方法。