首页 > 解决方案 > PHP 未定义变量 $page_id - 包括

问题描述

我有以下代码: 这是 index.php initialize.php init 数据库连接

<?php require_once('../private/initialize.php'); ?>

<?php 
    
    if(isset($_GET['id'])){
        $page_id = $_GET['id'];
        $page = find_page_by_id($page_id);
        if(!$page){
            redirect_to(url_for('/index.php'));
        }
    }
?>


<?php include(SHARED_PATH.'/public_header.php'); ?>

<div id="main">

    <?php include(SHARED_PATH.'/public_navigation.php');  ?>
    
    <div id="page">
    
        <?php
        if(isset($page)){
            echo $page['content'];
        } else { 
            include(SHARED_PATH.'/static_homepage.php'); 
        }
        ?>
    </div>
    
</div>


<?php include(SHARED_PATH.'/public_footer.php'); ?>

这是下面的public_navigation.php:

<navigation>
    <?php 
      echo $page_id;
      exit;
    ?>
    <?php $nav_subjects = find_all_subjects(); ?>
    
    <ul class="subject">
        <?php while($nav_subject = mysqli_fetch_assoc($nav_subjects)) { ?>
            <li>
                <a href="<?php echo url_for('/index.php'); ?>">
                    <?php echo h($nav_subject['menu_name']); ?>
                </a>
                    <?php $nav_pages = find_pages_by_subject_id($nav_subject['id']); ?>
    
                    <ul class="pages">
                        <?php while($nav_page = mysqli_fetch_assoc($nav_pages)) { ?>
                            <li class="<?php if($nav_page['id'] == $page_id){ echo 'selected'; } ?>">
                                <a href="<?php echo url_for('/index.php?id='.h(u($nav_page['id']))); ?>">
                                    <?php echo h($nav_page['menu_name']); ?>
                                </a>
                            </li>
                        <?php } ?>
                    </ul>
                    <?php mysqli_free_result($nav_pages); ?>
            </li>
        <?php } ?>
    </ul>
    
    <?php mysqli_free_result($nav_subjects); ?>
    
</navigation>

我无法从 index.php 中获取 $page_id -> public_navigation.php 中的未定义变量!

调用index.html时,回显$page_id;返回未定义..

这是我想在 public_navigation.php 中设置的

<li class="<?php if($nav_page['id'] == $page_id){ echo 'selected'; } ?>">

标签: phpmysql

解决方案


调用index.html时,导航中没有设置$page_is,导航运行..

if(!isset($page_id)) { $page_id = 1; }

推荐阅读