为什么重定向后代码继续执行?

发布于 2024-11-16 22:34:02 字数 223 浏览 0 评论 0原文

为什么使用header()重定向后继续执行?

  $flag=1;

  if($flag==1)
      header("Location:page1.php");

  header("Location:page2.php");

当我使用此代码时,浏览器重定向到 page2.php。 为什么会出现这种情况?

Why does the execution continue after redirection using header()?

  $flag=1;

  if($flag==1)
      header("Location:page1.php");

  header("Location:page2.php");

When I use this code the browser redirects to page2.php.
Why does this happen?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

谜泪 2024-11-23 22:34:02

您需要在标头调用之后放置一个 exit;;客户端停止加载页面后,PHP 不会自动停止执行代码。

You need to put an exit; after the header call; PHP does not automatically stop executing code after the client stops loading the page.

终陌 2024-11-23 22:34:02

代码应如下所示: -

$flag=1;
if($flag==1) {
    header("Location:page1.php");
    exit();
}
header("Location:page2.php");
exit();

如果不使用“exit()”/“die()”构造,PHP 将继续执行下一行。这是因为 PHP 将用户重定向到第一个提到的页面(在本例中为“page1.php”),但在执行整个页面中写入的所有语句之后,甚至在“< code>header()”方法被执行。为了阻止这种情况,我们需要使用“exit()”/“die()”结构。

希望有帮助。

The code should be like:-

$flag=1;
if($flag==1) {
    header("Location:page1.php");
    exit();
}
header("Location:page2.php");
exit();

If you don't use the "exit()" / "die()" construct, PHP will continue to execute the next lines. This is because PHP redirects the user to the first-mentioned page (in this case it's "page1.php"), but internally after executing all the statements written in the whole page, even after the "header()" method is executed. To stop this, we need to use either the "exit()" / "die()" constructs.

Hope it helps.

情深已缘浅 2024-11-23 22:34:02

它的工作原理如下:

服务器端:PHP 创建要发送的 HTML 页面。如果$flag == 1,它将其标头更改为location:page1.php。在每种情况中,由于没有else,它会将标头更改为location:page2.php

然后,该页面将发送到您的浏览器,它会重定向您。

我的建议:只需在第二次标头更改之前添加 else 即可。

Here is how it works:

Server side: PHP creates a HTML page to send. If $flag == 1, it changes its header to location:page1.php. In every case because there is no else, it then changes the header to location:page2.php.

Then, the page is sent to your brower, which redirects you.

My advice: simply put else before your second header change.

笑梦风尘 2024-11-23 22:34:02
  $flag=1;
  if($flag==1)
  {
      header("Location:page1.php");
      exit();
  }
  header("Location:page2.php");

这应该可以防止重定向到 page2.php。
只要记住将 exit() 放在必要的地方即可。

  $flag=1;
  if($flag==1)
  {
      header("Location:page1.php");
      exit();
  }
  header("Location:page2.php");

This should prevent redirection to page2.php.
Just remember to put exit() where it's necessary.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文