Php包括问题

时间:2012-02-13 17:50:35

标签: php

我是php新手,我正在尝试联系表单。

在我的contact.php文件中,我包含来自pear邮件包的Mail.php(我已经在我的root中复制了Mail.php及其Mail文件夹,因为我没有ssh访问权限直接安装它。)

现在在我的php中我把它放了:

<?php
if(!@file_exists('./Mail.php') ) {
    echo 'can not include';
} else {
   include('./Mail.php');
}
//rest of the code
 ?>

由于某种未知的原因,我得到了这个:

    The website encountered an error while retrieving http://example.com/contact.php. It may be down for maintenance or configured incorrectly.
Here are some suggestions:
Reload this webpage later.
HTTP Error 500 (Internal Server Error): An unexpected condition was encountered while the server was attempting to fulfill the request.
  • example.com被替换为隐藏我的主机

如果我评论include语句错误不再出现...我不明白我做错了什么...我确信Mail.php与我的contact.php文件位于同一根目录中。

3 个答案:

答案 0 :(得分:2)

尝试访问Mail.php directl,您可能启用了一些Apache证券,这将揭示问题。

其他问题可能是由于权限/所有权等原因造成的。

有些调试信息会有所帮助。

答案 1 :(得分:1)

使用include,它会尝试导入所请求的文件。如果失败,则继续,仅生成警告。由于当你注释掉include时,你的包含行会出现致命错误,这必然意味着包含了Mail.php ,但是它有错误。我建议你查看你的错误日志,找出Mail.php有什么问题。 @Mikhail可以找到一些东西,你可以通过访问Mail.php找出你的错误。

另外,如果我正确理解Mail.php与上面显示的PHP文件位于相同的文件夹中,那么您不需要使用include('./Mail.php')include('Mail.php')应该也能正常运作。

答案 2 :(得分:0)

看起来你没有正确包含文件:

<?php
if(!@file_exists('./Mail.php') ) {
    echo 'can not include';
} else {
   include('./Mail.php');
}
//rest of the code
 ?>

使用../以递归方式查找,即在Mail.php的一级文件夹中。

代码应为:

include('../Mail.php')