PHP头重定向在网站上不起作用,已经研究过了,还需要帮助

PHP头重定向在网站上不起作用,已经研究过了,还需要帮助,php,redirect,header,warnings,Php,Redirect,Header,Warnings,这是我的代码,它给出了典型的重定向错误: 警告:无法修改标题信息-标题已由第14行的/home/content/74/8256574/blah/blah/index.php:24)中的/home/content/74/8256574/blah/blah/blah.php发送 上面的标题重定向是第14行的内容。在index.php页面的第24行,有一个css文件(不要认为这会导致问题) 我正在提交一个表单,并检查表单中是否有空值。如果它发现一个空值,则使用&message=failure重定向到上

这是我的代码,它给出了典型的重定向错误: 警告:无法修改标题信息-标题已由第14行的/home/content/74/8256574/blah/blah/index.php:24)中的/home/content/74/8256574/blah/blah/blah.php发送

上面的标题重定向是第14行的内容。在index.php页面的第24行,有一个css文件(不要认为这会导致问题)

我正在提交一个表单,并检查表单中是否有空值。如果它发现一个空值,则使用&message=failure重定向到上面的URL


我知道这里有很多问题都在问同样的问题,但我仍然无法解决我的问题。请提供帮助。

如果数据已发送到浏览器,则无法修改标题信息。简单的解决方法是缓冲输出

if(isset($_POST['submit2']))
{
if($_POST['linklabel'] == '')
{
    header('Location: index.php?VIEW=BLAH&message=failure');
}
else
{

可能的重复我确定有很多重复,如果需要,我将删除此帖子。@K_G这是一张绷带,真正的解决方案是确保在开始输出之前完成检查。让我们假装什么都没有发生。。。我会称之为抑制,而不是解决实际问题。假设
ob.*
方法的存在是有原因的,在这个片段中使用它们是可行的。如果您发现自己一直在使用它们,并且忘记了它们,那么逻辑重构就是一个不错的选择。感谢@PHPBree的支持,但我的解决方案只针对一个小脚本。我曾在大型跨国团队中工作过,开发人员在凌晨3点潜入黑客攻击,框架变成意大利面条,然后公司花费15万美元进行重构,以彻底改造代码库。你们两个都有优点,但都不是那么简单。尽管有一个小片段,ob_start()工作得很好:)@PHPBree这是一个没有实际意义的论点,在现实世界中,在多个国家有20名开发人员的团队中,应用程序有一个适当的MVC设置,因为在这么大的团队中工作时,你真的离不开它,有了20位专业人士,你就不会有这个问题了,因为他们都应该明白他们在做什么,如果没有人知道的话,他们会在以后纠正这个黑客行为,可能是在经过半天的艰苦调试代码之后,因为一个不知名的黑客行为而找不到真正的问题。
ob_start(); // Put at the top of your script.
header('Location: index.php?VIEW=BLAH&message=failure');
ob_end_flush();