使用$view=$_GET[';view';]检查打印视图


Using $view = $_GET['view'] to check for print view

我在现有的国产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的另一种方式,它仍然允许我访问所有其他内容变量?

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

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

试试这个:

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

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

例如:

var_dump($_GET);die;

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