header("profil.php?id=" . $show["id"]);我想做什么,但是头部已经在顶部发送了,那么我如何重定向用户呢?我应该使用window.location.replace("URL");(javascript)吗?
发布于 2010-10-01 04:45:40
如果你不能控制脚本的开头,那么你唯一的方法就是使用JavaScript。
另外,正确的语法是header('Location: profil.php?id=' . $show['id']);
您需要Location:部件,以便浏览器知道它正在接收的报头。此外,不要忘记在重定向之后立即执行exit()或die()。
发布于 2010-10-01 04:47:35
如果我错了,有人纠正我,但我认为你可以在你的页面开始使用ob_start(),这将允许你通过PHP重定向,即使标题已经发送。
发布于 2010-10-01 04:57:15
您应该重新设计您的应用程序,使其更加合理。
它应该只在必要时才开始输出,而不是每次调用此文件时才开始输出。
你必须修改你所有的代码,将每个脚本分成2个部分。第一部分将包含所有数据操作,第二部分将仅包含输出。将后者放入单独的文件中会更好,称为模板。因此,您的配置文件php将如下所示
include 'dbc.php';
//some code that sends headers, gets data etc
//after it's all done, call your template files
include 'top.php';
include 'profiles.tpl.php';
include 'bottom.php';可能会有一些变化,但主要思想是相同的:将数据操作与数据表示分开。
https://stackoverflow.com/questions/3834676
复制相似问题