PHP - 通过 POST 重定向和发送数据
我有一个在线网关,需要提交带有隐藏字段的HTML表单。我需要通过没有任何HTML表单的PHP脚本执行此操作(我有数据库中隐藏字段的数据)
要执行此操作,请通过 GET 发送数据:
header('Location: http://www.provider.com/process.jsp?id=12345&name=John');
并且要通过POST发送数据?
我有一个在线网关,需要提交带有隐藏字段的HTML表单。我需要通过没有任何HTML表单的PHP脚本执行此操作(我有数据库中隐藏字段的数据)
要执行此操作,请通过 GET 发送数据:
header('Location: http://www.provider.com/process.jsp?id=12345&name=John');
并且要通过POST发送数据?
你不能使用PHP做到这一点。
正如其他人所说,您可以使用cURL - 但随后PHP代码成为客户端而不是浏览器。
如果你必须使用 POST,那么唯一的方法是使用 PHP 生成填充的表单,并使用 window.onload 钩子调用 javascript 来提交表单。
下面是解决方法示例。
function redirect_post($url, array $data)
{
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
function closethisasap() {
document.forms["redirectpost"].submit();
}
</script>
</head>
<body onload="closethisasap();">
<form name="redirectpost" method="post" action="<? echo $url; ?>">
<?php
if ( !is_null($data) ) {
foreach ($data as $k => $v) {
echo '<input type="hidden" name="' . $k . '" value="' . $v . '"> ';
}
}
?>
</form>
</body>
</html>
<?php
exit;
}