我对PHP和整个社区都很陌生,所以我还在学习。
重定向到非常具体的网址。
我已经构建了自己的MVC处理程序,我在下面已经包含了这个处理程序,我正在尝试处理我目前处于user/login
的特定情况,但我想在记录后重定向回主页所以我想去home/index
。要做到这一点, 我认为 ,正确的重定向方式(经过一段时间的搜索)就是发出以下命令:
header("Location: http://$host$uri/$controllerName/$action");
我已经确认网址是正确的(例如,如果我将网址放在地址栏中就可以了),但由于某种原因,浏览器没有响应。
有人能指出我正确的方向吗?
以下是我收到的错误。
警告:无法修改标头信息 - 已在/Applications/MAMP/htdocs/test/core/bootstrap.php中发送的标头(输出从/Applications/MAMP/htdocs/test/core/bootstrap.php:66开始)在第70行
这是第66行:
if ($_SERVER['DEBUG']) { echo "<br/>$url ..."; }
所以,在尝试它出现之前我无法输出任何内容?
答案 0 :(得分:2)
您只能在任何输出开始之前修改标题信息。尝试将标题更改放在脚本的顶部,它将起作用(假设已设置这些变量)。
在第66行,您可能有一个echo
命令或一些HTML。
从PHP手册:
请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。使用include或require,函数或其他文件访问函数读取代码是一个非常常见的错误,并且在调用header()之前输出空格或空行。使用单个PHP / HTML文件时存在同样的问题。