PHP die()显示简短的白屏

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (109)

我正在使用重定向功能将访问者重定向到某个页面,因为他们无权访问当前页面。功能如下:

$user->redirect('www.google.com');
die();

重定向功能链接到:

public function redirect($url="",$time=0) {
    header("Refresh: $time; url=$url");
}

每当您被重定向时,您会短暂地看到一个白页,然后是您重定向到的页面。我假设白页是由die()

我不喜欢它,我真的想摆脱这个。

提问于
用户回答回答于

问题与die()调用无关,但是您发送错误的标头来处理重定向。

做的机构

public function redirect($url="",$time=0) {
    header("Refresh: $time; url=$url");
}

做:

public function redirect($url) {
    header("Location: $url", true);
}

甚至:

public function redirect($url, $temporal = false) {
    header("Location: $url", true, $temporal ? 302 : 301);
}

使用此功能,您将发送状态代码“301”或“302”,以指示重定向是暂时的,还是永久的。默认为永久重定向,因为临时变量很少有用(尽管在您的情况下,由于权限而导致重定向,因此可能需要临时重定向)

(我也删除了默认值$url,因为重定向到空URL没有多大意义)

用户回答回答于

您可以使用“位置:”,而不是使用“刷新:”标题。这样,页面不必刷新,可能会导致您所需的行为。

public function redirect($url="/") {
    header("Location: $url");
}

编辑:添加默认的$ url'/',这样如果没有给出url,它会重定向到主页

扫码关注云+社区

领取腾讯云代金券