【问题标题】:Included functions cant work in included header and navbar files in php包含的函数不能在 php 中包含的标头和导航栏文件中工作
【发布时间】:2018-10-13 00:36:00
【问题描述】:

我在一些网站上工作,我在其中包含文件夹和导航栏、布局文件夹中的页眉和页脚中的 php 文件。当我需要 index.php 中包含文件夹中的函数时,它们可以正常工作,但是当我在标题或导航栏中调用相同的函数时,会出现错误未定义索引和函数名称的打击。我能做什么?

索引.php:

<?php 
require("../includes/initialize.php");
require_once(LIB_PATH.DS.'session.php');    
?>

<!-- header -->
<?php 
include_layout_template('header.php'); 
include_layout_template('navbar.php'); 
?>

<?php echo output_message($message); ?>

navbar.php:

<div class="agileits_header">
    <div class="container">
        <div class="w3l_offers">
        </div>
        <div class="agile-login">
            <ul>
            <?php if(!$session->is_logged_in()): ?>
                <li><a href="register.php"> Create Account </a></li>
                <li><a href="login.php">Login</a></li>
            <?php else: ?>
                <li><a href="profile.php">Profile</a></li>
                <li><a href="logout.php">Logout</a></li>
            <?php endif; ?>
                <li><a href="contact.php">Help</a></li>
            </ul>
        </div>

这是我的 initialize.php 文件:

defined('DS') ? null : define('DS', DIRECTORY_SEPARATOR);

defined('SITE_ROOT') ? null : 
    define('SITE_ROOT', DS.'xampp'.DS.'htdocs'.DS.'supermarket');

defined('LIB_PATH') ? null : define('LIB_PATH', SITE_ROOT.DS.'includes');

// load config file first
require_once(LIB_PATH.DS.'config.php');

// load basic functions next so that everything after can use them
require_once(LIB_PATH.DS.'functions.php');
require_once(LIB_PATH.DS.'validation_functions.php');

// load core objects
require_once(LIB_PATH.DS.'database.php');
require_once(LIB_PATH.DS.'database_object.php');
require_once(LIB_PATH.DS.'pagination.php');


// load database-related classes
require_once(LIB_PATH.DS.'user.php');
require_once(LIB_PATH.DS.'admin.php');
require_once(LIB_PATH.DS.'seed.php');
require_once(LIB_PATH.DS.'comment.php');

?>

【问题讨论】:

  • include_layout_template()不是标准的php函数,应该不是include函数吧?
  • is_logged_in() 定义在哪里?
  • include_layout_template() 是我用functions.php 编写的函数,由index.php 中的require("../includes/initialize.php"); 第1 行调用。 is_logged_in() 是 sessions.php 中的一个函数,它位于 index.php 的第二行 require_once(LIB_PATH.DS.'session.php');
  • 可能是因为你 require_once 文件,尝试只 require 看看会发生什么?
  • 请显示定义include_layout_template函数

标签: php


【解决方案1】:

始终包含所有具有绝对路径的文件。 不要将“..”用于包含文件。

试试这个

define('SITE_ROOT', dirname(__FILE__));

define('ROOTPATH', __DIR__);

【讨论】:

  • 我做到了,兄弟,这就是为什么我有 LIB_PATH.DS 但所有包含的功能在导航栏中不起作用,但只能在 index.php 中使用,但导航栏作为 index.php 的一部分包含在
猜你喜欢
  • 2018-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-17
  • 2011-12-07
  • 1970-01-01
  • 2011-10-13
相关资源
最近更新 更多