gpt4 book ai didi

linux - 如何在 linux、cpanel 上禁用 "header already sent"消息?

转载 作者:太空宇宙 更新时间:2023-11-04 09:55:28 24 4
gpt4 key购买 nike

我在本地主机上构建我的网站(在 Windows 上运行 wamp),当我将它上传到我的服务器时,我总是得到“无法修改 header 信息 - header 已发送”

我知道不应该有任何空行和任何东西,通常这样就可以了。但是现在我需要在 header 发送后重定向某人,我怎样才能让我的服务器像我的本地主机一样?

我正在使用控制面板和 WHM:

cPanel 11.25.0-R42399 - WHM 11.25.0 - X 3.9VPS 上的 CENTOS 5.4 x86_64 virtuozzo

我将不胜感激

最佳答案

简而言之,在到达要使用 header() 函数的位置之前,您需要阻止 PHP 向浏览器输出任何内容。

这应该通过仔细的编程实践来完成,您的“无空行”就是其中之一,或者通过将 PHP 的输出存储在输出缓冲区中,并且仅在您准备好时才输出。

参见 ob_start()ob_flush()方法。您在应用程序开始时使用 ob_start() 。这将禁用输出并将其存储到缓冲区中。当您准备好开始输出时,使用 ob_flush() 并且 PHP 会将缓冲区的内容发送到浏览器,包括在此之前设置的 header 。如果您不调用 ob_flush(),则在脚本末尾输出(刷新)缓冲区。

它在您的 WAMP 开发环境中工作的原因很可能是输出缓冲已经在 php.ini 中默认启用。这些一体式软件包通常会为前 4k 字节左右启用默认缓冲区。但是,通常最好在代码中显式启动和刷新缓冲区,因为这会强制采用更好的编码实践。

关于linux - 如何在 linux、cpanel 上禁用 "header already sent"消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5394349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com