PHP 标头使用后变量刷新

  • 本文关键字:变量 刷新 PHP php
  • 更新时间 :
  • 英文 :


我看过这个脚本

<?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=develop‌​per&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']   = 'develop‌​per';
    $_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">

最新更新