2

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

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

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

4

1 回答 1

1

如果表单有一个“redirect_link”字段,你不能把它作为GET参数包含在里面吗?

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

您需要将 JavaScript 添加到邮政编码输入中,这样当它更新时,它也会更新隐藏字段。

正如您所提到的,另一种选择是使用 PHP 会话,但由于它也需要会话,因此您不会在隐藏字段中获得任何东西(例如,如果人们禁用了会话 cookie)。

如果可能的话,我可以想到的第三种选择是使用您自己的表单使用 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);

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

于 2013-07-26T23:56:50.623 回答