警告:require_once(Composer/PHPMailer/vendor/phpmailer/phpmailer/src/autoload.php):无法打开流:没有这样的文件或目录
Posted
技术标签:
【中文标题】警告:require_once(Composer/PHPMailer/vendor/phpmailer/phpmailer/src/autoload.php):无法打开流:没有这样的文件或目录【英文标题】:Warning: require_once(Composer/PHPMailer/vendor/phpmailer/phpmailer/src/autoload.php): failed to open stream: No such file or directory 【发布时间】:2020-06-28 12:41:22 【问题描述】:我收到 警告错误:require_once(Composer/PHPMailer/vendor/phpmailer/phpmailer/src/autoload.php):无法打开流:/home/hyperspace/public_html/ 中没有此类文件或目录第 5 行的contact.php 和致命错误:require_once(): Failed opening required 'Composer/PHPMailer/vendor/phpmailer/phpmailer/src/autoload.php' (include_path='.:/opt/ alt/php72/usr/share/pear') 在第 5 行的 /home/hyperspace/public_html/contact.php 中,我没有对我的 cpanel 的 root 访问权限。您可以在http://hyperspacedesigns.co.za/contact.php 检查错误。我使用的代码是:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require_once "Composer/PHPMailer/vendor/phpmailer/phpmailer/src/autoload.php"; //This is line 5//
$mail = new PHPmailer();
$mail->Host = "";
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Username = "";
$mail->Password = "";
$mail->SMTPSecure = "ssl";
$mail->Port = 465;
$mail->addAddress('contact@hyperspacedesigns.co.za');
$mail->setFrom($_POST['email']);
$mail->name = $_POST['name'];
$mail->Subject = $_POST['subject'];
$mail->number = $_POST['number'];
$mail->ishtml(true);
$mail->Body = $_POST['message'];
if ($mail->send())
$msg = "Your email has been sent, Thank You!";
else
//$msg = "Please try agian!";
echo $mail->ErrorInfo;
?>
我的 html 在我的表单所在的 contact.php 文件中,这是我的表单代码:
<!-- /contact-form -->
<section class="w3l-contact-main">
<div class="contact-infhny py-5">
<div class="container">
<div class="contact-grids row py-lg-5">
<div class="contact-left col-lg-6">
<img src="assets/images/contact-sec.jpg" class="img-fluid">
</div>
<div class="contact-right col-lg-6 pl-lg-4">
<h3>Contact</h3>
<h4>Everything Starts With A Hello!</h4>
<p>We’re here to answer any questions you may have and create an effective solution for your instructional needs.</p>
<?php if ($msg != "") echo "$msg<br>"; ?>
<form action="contact.php" method="post" class="signin-form mt-lg-5 mt-4">
<div class="input-grids">
<input type="text" name="name" placeholder="Full name" class="contact-input" />
<input type="email" name="email" placeholder="Your email" class="contact-input" />
<input type="text" name="subject" placeholder="Subject" class="contact-input" />
<input type="number" name="number" placeholder="Phone number" class="contact-input" />
</div>
<div class="form-input">
<textarea name="message" placeholder="Type your message here" required=""></textarea>
</div>
<div class="form-input mb-5">
<label class="container"><p>Send me a copy <a href="#">privacy policy.</a></p>
<input type="checkbox">
<span class="checkmark"></span>
</label>
</div>
<button class="btn submit">Submit</button>
</form>
</div>
</div>
</div>
</div>
<div class="map-hny">
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d387193.305935303!2d-74.25986548248684!3d40.69714941932609!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x89c24fa5d33f083b%3A0xc80b8f06e177fe62!2sNew+York%2C+NY%2C+USA!5e0!3m2!1sen!2sin!4v1563262564932!5m2!1sen!2sin" style="border:0" allowfullscreen=""></iframe>
</div>
</section>
<!-- //contact-form -->
我知道它不会发送电子邮件,因为我没有更改我的提交按钮以使用 php,但我在加载页面时收到错误。
这就是我的文件在 cpanel 中的样子:
我使用 composer 来安装 PHPMailer。在我的 Composer 文件中,我安装了 PHPMailer 及其所有组件。我没有更改 php.ini 中的任何内容,因为我不知道它是否与我的错误有关。我不知道这是否与我没有 root 访问权限有关。有人可以帮帮我吗?
【问题讨论】:
查看***.com/questions/41209349/… 【参考方案1】:您没有正确使用作曲家;这一行是错误的:
require_once "Composer/PHPMailer/vendor/phpmailer/phpmailer/src/autoload.php";
您需要为您的 项目定义一个composer.json
文件,因此假设您在/home/hyperspace/public_html
中创建您的项目(但请注意,在您的Web 根目录中包含库文件通常是不好的)。 cd
进入该目录并运行 composer require phpmailer/phpmailer
。这将创建一个composer.json
文件、一个composer.lock
文件和一个名为vendor
的文件夹,其中包含一个PHPMailer 文件夹和一些脚本,其中一个名为autoload.php
。然后,在您的 contact.php
脚本中,您将像这样加载自动加载器:
require 'vendor/autoload.php';
如果您不能直接在服务器上运行命令,请在本地执行所有相同操作,然后上传整个文件夹,包括供应商文件夹。
【讨论】:
感谢您的帮助@Synchro,我将在本地运行代码,然后将所有内容作为一个整体上传到我的服务器,看看是否有效。 感谢您的帮助,非常感谢您的帮助。以上是关于警告:require_once(Composer/PHPMailer/vendor/phpmailer/phpmailer/src/autoload.php):无法打开流:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章
警告:require_once():在 PHP 中依赖系统的时区设置错误是不安全的
警告:require_once(./mailer/class.phpmailer.php):打开流失败: