问题描述
我在设置PHPMailer时遇到问题。它以前一直在工作,但是现在突然停止了,这是我得到的错误:
PHP Fatal error: require(): Failed opening required '../src/PHPMailer.PHP' (include_path='.:/opt/cpanel/ea-PHP53/root/usr/share/pear:/opt/cpanel/ea-PHP53/root/usr/share/PHP') in /home/pandatra/site.com/contacts_form/contact_form.PHP on line 9
<?PHP
include 'config.PHP';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
require ''.$d['include_path'].'PHPMailer/src/Exception.PHP';
require ''.$d['include_path'].'PHPMailer/src/PHPMailer.PHP';
require ''.$d['include_path'].'PHPMailer/src/SMTP.PHP';
$mail = new PHPMailer(true);
if (isset($_POST['Send'])) {
如何解决此问题?有任何想法吗?我下载了PHPMailer的6.1.7版本。
解决方法
您提到的错误是,您需求中的路径变得错误。为避免此类问题,您应始终使用绝对路径
例如
require __DIR__.'/PHPMailer/src/Exception.php';
require __DIR__.'/PHPMailer/src/PHPMailer.php';
require __DIR__.'/PHPMailer/src/SMTP.php';
# use "use" after include or require
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
__ DIR __ 是运行文件目录的绝对路径。
,问题出在这里
我只是用新版本替换了旧版本
如果从5.x升级到6.x,则需要阅读专门为解决此问题而创建的the readme,the upgrade guide或this question and answer。