标头位置延迟

  • 本文关键字:延迟 位置 php
  • 更新时间 :
  • 英文 :


我有以下 php 代码,我也想添加一个延迟:

<?php
    echo "Message has been sent.";
    header("Location: page2.php", true, 303);
    exit;
?>

上面的代码发生得太快,所以我看不到消息:

我试过:

<?php
    sleep(5);
    echo "Message has been sent.";
    header("Location: page2.php", true, 303);
    exit;
?>

这也不会显示消息,但它确实会休眠 5 秒钟,这只是浪费时间。

如何让它在重定向前显示一条消息 5 秒?

您无法使用 HTTP 位置重定向执行此操作,因为此重定向将在浏览器获得标头后立即发生。请改用标头中的刷新重定向:

header( "Refresh:5; url=http://www.example.com/page2.php", true, 303);

应该适用于现代浏览器,但它不是标准化的,因此要获得等效的功能,请使用元刷新重定向(这意味着您还必须输出完整的 HTML):

<meta http-equiv="refresh" content="5;url=http://www.example.com/page2.php"> 

从维基百科页面:

用于重定向,或创建新资源时使用。这 刷新在 X 秒后重定向。这是专有的,非标准的 标头扩展由Netscape引入并得到大多数Web的支持 浏览器。

使用客户端脚本执行重定向:

<script>
window.setTimeout(function() {
    window.location = 'page2.php';
  }, 5000);
</script>
<p>Message has been sent.</p>

你必须像这样修改你的代码:

<?php
    echo "Message has been sent.";
    sleep(5);
    header("Location: page2.php", true, 303);
    exit;
?>

如果您使用的是标头(位置)重定向,您将无法看到该消息。事实上,该重定向根本不应该起作用,因为输出在发送标头之前就开始了。相反,您应该延迟回显元标记刷新,如下所示

echo '<meta http-equiv="refresh" content="5;URL='http://example.com/'">';这将有五秒钟的延迟。或者,(更准确地说)您可以输出 JS 重定向,因为元刷新标记已被弃用。

我不知道

它是否有帮助,但是当我在提交消息后需要干净的表单中处理相同的问题时,我发现了这个答案,它解释了您可以将值输入更改为空。

答案如下:如何在页面重新加载时重置文本输入的值?

这就是我使用我的类 .form-control 解决我的问题的方式

$(document).ready(function() {
   $(".form-control").val('');
});
header( "Refresh:time; url='filelocation'");

这对我有用...我正在使用最新的PHP版本7.3.3在WAMPP的Windows上...

<?php
$name = $_POST['name'] ?? null; 
if(empty(trim($name))){
    header("location: http://localhost/testsite/index.php");
}
echo 'Greetings '. $_POST['name'].', how can I help you?';
echo '<meta http-equiv="refresh" content="5;URL='http://localhost/testsite/index.php'">';

我希望这有所帮助。

    <?php
echo "<div class='form'>
                  <h3>Added successfully.</h3><br/>
                  </div>";
                  
                $time_out = 05; //here you set how many seconds to untill refresh
header("refresh: $time_out; url=insert.php");  
       ?>

最新更新