【问题标题】:Warning: include() [function.include]: Filename cannot be empty PHP警告:include() [function.include]:文件名不能为空 PHP
【发布时间】:2017-10-29 12:14:47
【问题描述】:

PHP 文件在 MAMP 上的本地服务器上运行良好,没有错误,但是当我将其上传到学校的 Web 服务器并尝试运行该页面时,我收到了这些错误消息,但它正在工作,它只是给了我这些错误

警告:include() [function.include]:第 57 行 /home//inc/header.php 中的文件名不能为空

警告:include() [function.include]:在 //public_html/inc/ 中打开 '' 以包含 (include_path='.:/usr/lib/php:/usr/local/lib/php') 失败header.php 在第 57 行

最后一行的来源是第 57 行,它表示错误正在发生

<?php
    if(isset($_GET["page"])){
        if($_GET["page"] == "home"){
            $pageTitle = "Home Page";
            $page = null;
        }else if($_GET["page"] == "aboutus"){
            $pageTitle = "About Us";
            $page  = "aboutus.php";
        }else if($_GET["page"] == "contact"){
            $pageTitle = "Contact Us";
            $page  = "contact.php";
        }else if($_GET["page"] == "portfolio"){
            $pageTitle = "Portfolio";
            $page  = "portfolio.php";
        }else if($_GET["page"] == "services"){
            $pageTitle = "Services";
            $page  = "services.php";
        }
    }
?>

<title><?php echo $pageTitle;?></title>

<?php include($page) ;?>    <!-- different pages load content -->   

【问题讨论】:

  • 它是否显示“主页”?如果page GET 参数等于home,您的$page 变量将为null。而include(null) 会生成这条消息。
  • 可以在使用前实例化变量
  • 还包含语句应该在引号中包含文件名,检查语法。

标签: php error-messaging


【解决方案1】:

你没有在你的本地机器上得到它,因为你在开发时在 php.ini 中禁用了 error_reporting。不要那样做,总是用error_reporting=E_ALL开发

meanwille,您会在学校网站上看到错误,因为它没有在禁用 error_reporting 的情况下运行。修复你的本地机器,你也会在那里得到这个错误。

并且错误试图告诉您 NULL 不是包含的有效参数,这是您的代码中的错误。所以修复它。

<?php if(isset($page)){include($page);} ?>

现在,如果 $page 为 NULL,它将永远不会尝试包含 $page,并且您不会在任何地方收到该错误。但说真的,修复你的 php.ini,它可以帮助你在开发过程中发现很多错误(比如这个)。

【讨论】:

    猜你喜欢
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 2013-06-18
    • 2015-01-21
    相关资源
    最近更新 更多