因此,我目前在一个页面上。
adminpanel.php?type=pdetail&id=1&op=edit
我的每个变量都通过回显HTML标记来创建页面的某个部分。我希望我的页面重定向到
adminpanel.php?type=edit
(我的类型变量已经定义为"pdetail",我希望将其修改为"edit"(
if($op == 'edit')
{
$id = $_GET['id'];
echo("Testing IF condition");
header("location:adminpanel.php?type=edit");
}
正如我在评论中提到的,您在头之前输出(请参阅下面的"引用"(。在此之前不应该有任何输出,包括打开<?php
标记、HTML、cookie等之前的一个或多个空格,或任何可能导致错误的内容。
我在下面的"参考资料"下为您提供的链接中涵盖了这一点。
- 删除"echo"语句
我不知道你是否看到我的评论,我提交以下答案。
如果错误报告在您的服务器上设置/打开,您将收到类似以下的警告:
警告:无法修改标头信息-标头已由第x行的/var/user/you/folder/adminpanel.php中的/var/user/user/folder/admin panel.php发送(输出开始于/var/user/uolder/adminpanel.php(
使用以下代码进行了测试,并添加了您在问题中遗漏的一些代码,结果证明是成功的。
<?php
$op = $_GET['op'];
if($op == 'edit')
{
$id = $_GET['id'];
header("location:adminpanel.php?type=edit");
exit;
}
旁注:如果后面有更多的代码,最好在标题后面添加exit;
。否则,您的代码可能希望继续执行。
参考文献:
- http://php.net/manual/en/function.error-reporting.php
- 如何修复";标头已发送";PHP中的错误
- http://php.net/manual/en/function.header.php
错误报告:
将错误报告添加到文件顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告只能在临时阶段进行,而不能在生产阶段进行。