【问题标题】:Problem with PHPMailer: require(): Failed opening requiredPHPMailer 的问题:require():需要打开失败
【发布时间】:2020-08-17 16:42:38
【问题描述】:

我在设置 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

这是contact_form.php中的代码:

<?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'])) {

如何解决这个问题?有任何想法吗?我下载了 6.1.7 版本的 PHPMailer。

【问题讨论】:

  • 您需要确定您的 PhpMailer 在哪里,以及路径是否已更改。
  • 您好,谢谢您的回答。路径没有改变。我只是用新版本替换了旧版本。

标签: php phpmailer


【解决方案1】:

您提到的错误是,您的要求中的路径错误。为避免此类问题,您应始终使用绝对路径

例如

    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__是运行文件目录的绝对路径。

【讨论】:

  • 谢谢!我试过了,现在我得到了这个错误:Parse error: syntax error, unexpected '[' in /home/pandatra/nordinterior.com/contacts_form/phpmailer/src/PHPMailer.php on line 304
  • 重新安装 PHPMailer
  • 重新安装,这是我现在得到的错误:Parse error: syntax error, unexpected '[' in /home/pandatra/nordinterior.com/contacts_form/PHPMailer/src/PHPMailer.php on line 166
  • 你能说明 PHP 和 PHPMailer 的版本吗?
  • PHP 版本 5.3.29 PHPMailer 6.1.7
【解决方案2】:

问题来了:

我只是用新版本替换了旧版本

如果您从 5.x 升级到 6.x,则需要阅读专为处理此问题而创建的 the readmethe upgrade guidethis question and answer

【讨论】:

  • 您好,感谢您的回答。我下载了 PHPMailer 5.2 - Stable 并使用 GutHub 中的示例我得到了这个:
  • 不要将 5.2 用于任何新的开发。所有示例均适用于当前版本 (6.x),不适用于旧 (5.x) 版本。
  • 这是我收到的错误Warning: require(/contacts_form/PHPMailer/PHPMailerAutoload.php): failed to open stream: No such file or directory in /home/pandatra/nordinterior.com/contacts_form/contact_form.php on line 5 Fatal error: require(): Failed opening required '/contacts_form/PHPMailer/PHPMailerAutoload.php' (include_path='.:/opt/cpanel/ea-php53/root/usr/share/pear:/opt/cpanel/ea-php53/root/usr/share/php') in /home/pandatra/nordinterior.com/contacts_form/contact_form.php on line 5
  • 请阅读我指出的文档。您尝试加载的文件不再存在。
  • 停下来。我不会帮你使用过时的版本。
猜你喜欢
  • 2015-02-13
  • 2016-06-29
  • 1970-01-01
  • 2016-05-25
  • 1970-01-01
  • 2018-09-16
  • 2021-06-11
  • 1970-01-01
  • 2012-08-14
相关资源
最近更新 更多