此代码适用于除Firefox以外的所有浏览器,我似乎无法找到原因。我试图要求一直回到根目录,但它仍然会引发错误:
"致命错误:require():需要打开失败 ' PHPMailer的/ SRC / PHPMailer.php' (包含路径=':/选择/的cPanel / EA-php70 /根的/ usr /共享/梨')"
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
require 'PHPMailer/src/Exception.php';
答案 0 :(得分:1)
您的浏览器不会影响路径在服务器上的工作方式。
最简单的说,您在require语句中没有正确的路径。
但是,我建议使用composer及其自动加载脚本将PHPMailer引入您的项目。
答案 1 :(得分:0)
Firefox不应该影响其中任何一个。
尝试:
如果这些步骤中的任何一个有帮助,那肯定不是Firefox的问题。
您打开一个简单的页面,还是依赖GET或POST变量?是否有其他浏览器缓存旧的工作版本,只有Firefox显示当前损坏的结果?尝试将文件重命名为之前没有的文件并重新打开,或者我在其他浏览器上列出的步骤。
当我得到这样奇怪的行为时,我通常会尝试编辑文件以显示不同的内容(如PHP文件开头的echo "current file <br>";
),首先要确保我从任何地方打开正确的文件代码更改生效。我遇到了很多这样的问题,它通常是切换下划线和短划线,从生产服务器而不是开发服务器打开等等。当你的调试看起来无论你做什么都没有用,最后你发现它是一场噩梦你没有做任何事情(对你正在打开的文件)。
这对“为什么只有Firefox”问题没有帮助,但您可能希望在包含或相对于当前文件夹时使用绝对路径是安全的。
而不是
require 'PHPMailer/src/PHPMailer.php';
试
require './PHPMailer/src/PHPMailer.php';
或
require __DIR__ . '/PHPMailer/src/PHPMailer.php';
// __DIR__ is a Magic constant showing directory of currently running script (if included, then path of included one)
// see http://php.net/manual/en/language.constants.predefined.php
或
require $_SERVER['DOCUMENT_ROOT'] . '/includes/PHPMailer/src/PHPMailer.php';
// DOCUMENT_ROOT is the root directory of your web, like /var/www/html/site.com
因此解析器不会在包含路径中查找该文件(除非这是您的PHPMailer所在的位置)。
另外,我在加载库时会使用require_once
而不是require
。