【问题标题】:redirecting in php AFTER my page completes its functionality在我的页面完成其功能后在 php 中重定向
【发布时间】:2013-05-07 05:41:16
【问题描述】:

我创建了一个更新数据库的页面。我希望该页面在更新页面上的所有代码完成后(并在几秒钟后)自动将您发送回主页(显示数据库信息的页面)。

我将 header() 函数放入其中,但它似乎在执行任何代码之前重定向。标头是正确的使用方法吗?在代码和短暂的延迟之后是否有另一种重定向方式?

【问题讨论】:

  • 向我们展示您的代码。您所要做的就是在更新之后和任何输出发送到浏览器之前调用标头。

标签: php redirect


【解决方案1】:

是的,但是在你执行你的代码之后再做..

<?php
function foo(){
    //do stuff here

    header("Location: redirect.php");
    exit();
}

确保在执行重定向之前不输出任何其他内容,否则会显示错误headers already sent

【讨论】:

  • 我实际上发现我可以将文本输出,但是重定向发生得太快以至于没有时间阅读消息,但它似乎至少在 Firefox 上工作得很好。谢谢你的帮助!!
【解决方案2】:

您应该能够在执行 PHP 代码后使用 header() 重定向。确保您的 header() 调用位于您要在重定向之前运行的代码之后。

【讨论】:

    【解决方案3】:

    是的,将header() 函数与Location: xxx 一起使用,只需在代码完成活动后发送即可。另请注意,为了使 header() 生效,在调用 header() 之前不能完成实际的页面输出(尽管可以通过使用输出缓冲来克服)。

    【讨论】:

      【解决方案4】:

      header() 是正确的重定向函数,但是 header() 函数仅在页面没有输出时才有效。

      如果你能在这里显示一些代码就好了。

      <?php
      header('Location: http://www.example.com/');
      ?>
      

      【讨论】:

      • 很抱歉,我是一名在教育机构工作的新手编码员(学生)(我作为学生员工在大学工作)。我应该小心我提供给第 3 方网站等的代码。但就像我说的,我是一个新手,所以我需要不时的帮助才能让一切正常运行。顺便谢谢你的帮助!!
      【解决方案5】:

      是的,header() 将完成这项工作。只需在您的数据库更新代码之后调用此代码:

      header('Location: ...');
      exit;
      

      为什么要在重定向之前添加任何延迟?

      【讨论】:

      • 以便有时间查看弹出的任何错误消息。如果一切顺利,我的代码输出“数据库已成功更新”,如果事情不顺利,则会出现错误。
      • 那么 HTTP 重定向绝对不是您想要的解决方案:元刷新或 javascript 重定向都可以。
      猜你喜欢
      • 2016-08-07
      • 2015-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-17
      • 2012-08-09
      • 1970-01-01
      • 2017-01-07
      相关资源
      最近更新 更多