【问题标题】:Using $view = $_GET['view'] to check for print view使用 $view = $_GET['view'] 检查打印视图
【发布时间】:2013-12-04 02:18:02
【问题描述】:

我在现有的本土 PHP CMS 中工作。有一个“打印”按钮应该允许用户查看没有页眉或页脚的打印友好页面,只有页面内容。但现在,它只是加载一个空页面。

我正在挑选一些未完成的代码来实现这一点,但基本上当用户单击打印按钮时,链接的页面 id 带有“?view=print”附加到末尾。然后,主内容页面有一个 if/else 语句应该检查 $view=='print'。如果是这样,它应该显示没有页眉和页脚的页面内容;如果没有,它应该加载默认页面。

没有任何实际的代码来检查视图,所以我添加了

 $view = $_GET['view'];

然后

 if ($view=='print') {
     $print = "print";
 }

 if ($print=="print")   { //print view}
 else { //default view}

问题是我无法将 $content 或任何其他变量加载到打印布局中。我可以回显文本,所以我知道条件有效,并且 $content 和其他页面元素变量($title、$header 等)被加载到默认视图中。

所以我猜测使用 GET 来检查视图变量会使其他页面内容变量无法访问。 (我也尝试过 POST)。

还有其他方法可以检查它是否设置为打印视图?或者我可以使用 GET 的其他方式仍然允许我访问所有其他内容变量?

【问题讨论】:

    标签: php get


    【解决方案1】:

    没有足够的代码来确定您的确切问题。但是我可以肯定地说,访问一个 GET 变量不会清空其他 get 或 POST 变量。这意味着问题出在代码的其他地方。

    也许 $view 已经加载了页面内容,当您将 $_GET['view'] 加载到 $view 时,它被删除了?

    试试这个:

    if ($_GET['view'] == 'print') {
        // print view
    } else {
        // default view
    }
    

    您还可以转储 $_GET 和 $_POST 中的所有内容,以便进行调试。

    例如:

    var_dump($_GET);die;
    

    上面的代码将打印以筛选 $_GET 超级全局中的所有值并在该行下方停止执行。

    【讨论】:

    • 感谢您的帮助——很高兴知道这不是问题所在。我将尝试 var_dump 并继续进行故障排除。谢谢。
    猜你喜欢
    • 2011-04-30
    • 2020-08-07
    • 2020-03-04
    • 2015-10-03
    • 1970-01-01
    • 2012-07-17
    • 2014-05-28
    • 2013-11-11
    • 1970-01-01
    相关资源
    最近更新 更多