我看过这个脚本
<?php header("Location: secondpage.php", TRUE, 307); ?>
我也看过这个剧本
<?php header("refresh:2; url=secondpage.php"); ?>
我想要两者的结合。我尝试了下面的脚本,但没有工作。有没有办法做到这一点?
<?php header("refresh:2; url=secondpage.php", TRUE, 307); ?>
我也尝试了下面的脚本,但没有奏效。有没有办法做到这一点?
<?php header("refresh:2; url=secondpage.php", FALSE, 307); ?>
关键是要有延迟,并且仍然在重定向时发送帖子。
例如。
来自: 首页.php
重定向到:第二页.php(使用首页的 _POST 美元.php这里(
再次编辑到:第三页.php(使用首页的 _POST 美元.php这里也(
header()
中的布尔标志 TRUE OR FALSE 确定您是否希望当前header()
替换前一个。如果需要多个标头,请将其设置为 FALSE。默认情况下,这是真的...这意味着任何后续header()
都将替换前一个。第三个参数是 HTTP 响应代码。
要将响应代码显式设置为 307,可以使用 PHP http_response_code($code)
。结合 2,您可以拥有这样的东西:
// EXPLICITLY SET RESPONSE CODE TO 307
http_response_code(307);
// REFRESH & REDIRECT TO page.php
// IN FACT; THERE IS NO NEED FOR THE http_response_code(307) ABOVE
// THIS ONE LINE DOES IT ALL IN ONE GO...
header("refresh:2; url=page.php", FALSE, 307);
如果你将refresh
增加到(比如(15,以便你有足够的时间查看浏览器的Web-Developer Tools
(在Networks Tab
下(,你会注意到307
的HTTP响应代码确实被设置并发送了。
要将一些数据从当前页面传递到page.php
,您有 2 个选项。通过$_GET
传递数据,如下所示:
<?php
$url = urlencode("page.php?user=web&password=developper&city=bronx");
header("refresh:2; url={$url}", FALSE, 307);
或者您可以像这样使用会话:
<?php
//FIRST CHECK IF SESSION EXIST BEFORE STARTING IT:
if (session_status() == PHP_SESSION_NONE || session_id() == '') {
session_start();
}
// SET SOME DATA INTO THE $_SESSION (TO BE USED IN page.php, ETC.)
$_SESSION['user'] = 'web';
$_SESSION['pass'] = 'developper';
$_SESSION['city'] = 'bronx';
header("refresh:2; url=page.php", FALSE, 307);
下面的标题必须工作
header("Refresh: 2; url=page.php");
如果它不起作用,请确保标头后没有 echo 语句。
检查此链接:-
如何修复PHP中的"标头已发送"错误
使用网页
<meta http-equiv="refresh" content="2;URL=page.php">