如何使用$_GET变量重定向到页面的特定先前状态


How to redirect to a particular previous state of my page using $_GET varialble

因此,我目前在一个页面上。

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

旁注:错误报告只能在临时阶段进行,而不能在生产阶段进行。