You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过条件判断屏蔽指定页面中include引入的header?

解决方案

下面几种方法都能从根源上避免在指定页面引入header:

方法一:通过当前页面文件名判断排除

先获取当前执行的页面文件名,再在原有登录判断逻辑外层加一层排除判断,比如要排除登录页login.php:

$current_page = basename($_SERVER['PHP_SELF']);
// 列出不需要显示header的页面
$exclude_pages = ['login.php', 'register.php'];

if (!in_array($current_page, $exclude_pages)) {
    if ($this->session->userdata('user_login')) {
        include 'logged_in_header.php';
    } else {
        include 'logged_out_header.php';
    }
}

方法二:控制器层面设置开关(适用于CodeIgniter这类框架)

从你的代码里用到$this->session来看,推测是使用CodeIgniter框架。可以在不需要显示header的控制器方法里,给视图传递一个标识变量:
比如登录控制器的方法:

public function login() {
    $data['show_header'] = false;
    $this->load->view('login_view', $data);
}

然后在视图的header引入逻辑处,先判断这个变量:

if (!isset($show_header) || $show_header !== false) {
    if ($this->session->userdata('user_login')) {
        include 'logged_in_header.php';
    } else {
        include 'logged_out_header.php';
    }
}

普通页面默认不设置$show_header或者设为true,就会正常引入header。

方法三:封装成可控制的函数

把header引入逻辑封装成一个函数,需要显示header的页面调用函数,不需要的就不调用:

function load_header($show = true) {
    if (!$show) return;
    
    if ($this->session->userdata('user_login')) {
        include 'logged_in_header.php';
    } else {
        include 'logged_out_header.php';
    }
}

普通页面调用load_header();,登录页这类页面调用load_header(false);或者直接不调用该函数。

内容的提问来源于stack exchange,提问作者Ignição Online

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 04:01:13