PHP重定向到包含数据的页面

PHP重定向到包含数据的页面,php,header,Php,Header,好的,我有一个信息,人们在我们的网站上使用它下载软件应用程序……实际上有4种不同的表单链接到同一个php脚本,我需要用$\u POST['application\u to\u download']将它们重定向到感谢页面我遇到的问题是如何将这个变量与php头一起发送..这是我的代码 这将打开下载 header("location:".$_POST['application_to_download']); 这很好,但我需要将用户重定向到感谢页面…所以我的第二种方法是尝试post方法 $post_d

好的,我有一个信息,人们在我们的网站上使用它下载软件应用程序……实际上有4种不同的表单链接到同一个php脚本,我需要用$\u POST['application\u to\u download']将它们重定向到感谢页面我遇到的问题是如何将这个变量与php头一起发送..这是我的代码

这将打开下载

header("location:".$_POST['application_to_download']);
这很好,但我需要将用户重定向到感谢页面…所以我的第二种方法是尝试post方法

$post_data = "software={$_POST['application_to_download']}";
$content_length = strlen($post_data);

header('POST /downloads/thank_you HTTP/1.1');
header('Host: localhost');
header('Connection: close');
header('Content-type: application/x-www-form-urlencoded');
header('Content-length: ' . $content_length);
header('');
header($post_data);
我不确定这个方法是怎么回事,但它根本就没有重定向,最后我可以这样做

header("location:"./downloads/thank_you?software=$_POST['application_to_download']);
类似的东西,但url看起来像这样

 http://somesite.com/downloads/thank_you?software=videovision10_1_07.exe
如果你问我,哪一个不是最漂亮的…我的意思是我知道我可以做到,但我正在寻找另一个选择…顺便说一句,这就是为什么我需要它在感谢页面上

<title>Thank You</title>
</head>
<body onload="window.location = '<?php print $_POST['software']; ?>'">
谢谢

我建议您改为重定向到感谢页面,并使用元刷新触发文件下载

header('Location: /thank_you_page.php?redirectTo=' . $_POST['app_to_dl']);
在感谢页面:

echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1;URL=" . $_GET['redirectTo'] . "\">";
echo”“;
试试看


编辑:现在我看到你提到了GET变量。。。你真的认为人们在看你的URL并判断它吗?

我建议你改为重定向到感谢页面,并使用元刷新触发文件下载

header('Location: /thank_you_page.php?redirectTo=' . $_POST['app_to_dl']);
在感谢页面:

echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1;URL=" . $_GET['redirectTo'] . "\">";
echo”“;
试试看

编辑:现在我看到你提到了GET变量。。。你真的认为人们在看你的URL并判断它吗?

对于浏览器发出的每一个请求,你都可以做出一个响应。您想显示一个感谢页面。这样就用完了那个。这意味着感谢页面必须自动触发浏览器发出第二个请求

您的选项是Javascript刷新:

window.onload = function() {
    location.href = '<?php echo $app; ?>';
}

对于浏览器发出的每个请求,您都可以做出一个响应。您想显示一个感谢页面。这样就用完了那个。这意味着感谢页面必须自动触发浏览器发出第二个请求

您的选项是Javascript刷新:

window.onload = function() {
    location.href = '<?php echo $app; ?>';
}


您混淆了请求头和响应头-这就是为什么不能使用位置重定向进行post。post是客户端->服务器。在设置标题的方式中,您试图从服务器->客户端发布,这是不可能的,正如Renesis所说。您将请求标题与响应标题混淆-这就是为什么无法使用位置重定向进行发布。POST是客户端->服务器。按照你设置标题的方式,你试图从服务器->客户端发布,这是不可能的,正如Renesis所说。