gpt4 book ai didi

使用 POST 数据进行 PHP 重定向

转载 作者:IT老高 更新时间:2023-10-28 11:39:30 27 4
gpt4 key购买 nike

我对这个话题做了一些研究,有专家说不是possible ,所以我想寻求其他解决方案。

我的情况:

页面 A:[checkout.php] 客户填写他们的账单详情。

页面 B:[process.php] 生成发票编号并将客户详细信息存储在数据库中。

页面 C:[thirdparty.com] 第三支付网关(仅接受 POST 数据)。

客户填写他们的详细信息并在页面 A 中设置他们的购物车,然后 POST 到页面 B。在 process.php 中,将 POST 数据存储在数据库中并生成发票编号。之后,将客户数据和发票编号发布到 thirdparty.com 支付网关。问题是在页面 B 中进行 POST。cURL 能够将数据 POST 到页面 C,但问题是页面没有重定向到页面 C。客户需要在页面 C 上填写信用卡详细信息。

第三方支付网关确实给了我们 API 示例,该示例是 POST 发票编号和客户详细信息。我们不希望系统生成过多不需要的发票编号。

有什么解决办法吗?我们目前的解决方案是让客户在页面 A 中填写详细信息,然后在页面 B 中创建另一个页面,显示那里的所有客户详细信息,用户可以在其中单击确认按钮以 POST 到页面 C。

我们的目标是让客户只需点击一次。

希望我的问题很清楚:)

最佳答案

在页面 B 上生成一个表单,将所有必需的数据和操作设置为页面 C,并在页面加载时使用 JavaScript 提交它。您的数据将被发送到页面 C,而不会给用户带来太多麻烦。

这是唯一的方法。重定向是一个 303 HTTP header ,您可以在 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html 上阅读它。 ,但我会引用其中的一些内容:

The response to the request can be found under a different URI and SHOULD be retrieved using a GET method on that resource. This method exists primarily to allow the output of a POST-activated script to redirect the user agent to a selected resource. The new URI is not a substitute reference for the originally requested resource. The 303 response MUST NOT be cached, but the response to the second (redirected) request might be cacheable.

实现您正在做的事情的唯一方法是使用将用户发送到页面 C 的中间页面。下面是一个关于如何实现该目标的小/简单片段:

<form id="myForm" action="Page_C.php" method="post">
<?php
foreach ($_POST as $a => $b) {
echo '<input type="hidden" name="'.htmlentities($a).'" value="'.htmlentities($b).'">';
}
?>
</form>
<script type="text/javascript">
document.getElementById('myForm').submit();
</script>

您还应该在 noscript 标记中包含一个简单的“确认”表单,以确保没有 Javascript 的用户能够使用您的服务。

关于使用 POST 数据进行 PHP 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5576619/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com