我是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.
如果我评论include语句错误不再出现...我不明白我做错了什么...我确信Mail.php与我的contact.php文件位于同一根目录中。
答案 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')