PHPMailer autoload.php 无法打开
PHPMailer autoload.php not able to open
我目前在 GoDaddy 上托管一个网站,最近我添加了一个联系表格,当人们填写它时会向我发送电子邮件。当我使用 XAMPP 时,它工作得很好,但是一旦我将相同的代码上传到 GoDaddy 服务器,它就会给我一个 HTTP ERROR 500
。
我正在使用 PHPMailer
和 Gmail 的 SMTP
服务。这是与 XAMPP 一起使用的当前代码:
<?php
require_once "vendor/autoload.php";
$name = $_POST["name"];
$email_from = $_POST["email"];
$telephone = $_POST["telephone"];
$message = "Name: ".$name."\r\n".
"Email: ".$email_from."\r\n".
"Telephone: ".$telephone."\r\n";
$email_to = "myemail@gmail.com";
if(isset($_POST['submit'])){
$mail = new PHPMailer\PHPMailer\PHPMailer;
$mail->isSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->Username = "myemail@gmail.com";
$mail->Password = "password";
$mail->SMTPSecure = "tls";
$mail->Port = 587;
$mail->From = $email_from;
$mail->FromName = $name;
$mail->addAddress($email_to);
$mail->addReplyTo($email_from);
$mail->Subject = "Info";
$mail->Body = $message;
if ($_POST["submit"]){
if(!$mail->send()){
echo "Mailer error: " . $mail->ErrorInfo;
}
else{
echo "Message sent successfully";
}
}
}
既然它给我 HTTP ERROR 500
,我决定查看 GoDaddy 给出的错误日志。这是错误:
[13-Dec-2018 19:33:13 UTC] PHP Fatal error: require_once(): Failed opening required '/home/namesearch/public_html/vendor/composer/autoload_real.php' (include_path='.:/opt/alt/php56/usr/share/pear:/opt/alt/php56/usr/share/php') in /home/namesearch/public_html/vendor/autoload.php on line 5
求助!!!我已经查找了无数解决方案,但我只是不知道如何解决它。我什至尝试将我的路径设置为:/home/namesearch/public_html/vendor/composer/autoload_real.php
和 /home/namesearch/public_html/vendor/composer/autoload.php
但没有任何效果。
我在配置 mustache 时遇到了类似的问题,希望对您有所帮助。我的问题出在这一行:
require_once "vendor/autoload.php";
它没有选择正确的 PHP 包含路径。
将供应商前一级文件夹的绝对路径添加到您的 PHP 包含路径。
将此代码放在 require 之前。
$includePath = get_include_path() . ";ABSOLUTE PATH OF FOLDER ONE LEVEL BELOW VENDOR";
set_include_path($includePath);
我在这里添加@h2oooooo 的评论。这是我刚开始学习作曲时让我抓狂的事情。正如他在上面所说的,确保你已经上传了所有的依赖项,然后更新你的自动加载文件。但是,具体操作方法如下:
1) 转到本地环境中项目的根目录。
2) 然后 运行 composer update
3) 我建议再次上传整个项目,除非你使用 filezilla 文件夹比较来显示哪些文件不同,否则很难确定。
如果您从 git 存储库上传您的项目,请仔细检查您的 .gitignore 文件是否忽略了您的 /vendor 文件夹,默认情况下它经常这样做。
我目前在 GoDaddy 上托管一个网站,最近我添加了一个联系表格,当人们填写它时会向我发送电子邮件。当我使用 XAMPP 时,它工作得很好,但是一旦我将相同的代码上传到 GoDaddy 服务器,它就会给我一个 HTTP ERROR 500
。
我正在使用 PHPMailer
和 Gmail 的 SMTP
服务。这是与 XAMPP 一起使用的当前代码:
<?php
require_once "vendor/autoload.php";
$name = $_POST["name"];
$email_from = $_POST["email"];
$telephone = $_POST["telephone"];
$message = "Name: ".$name."\r\n".
"Email: ".$email_from."\r\n".
"Telephone: ".$telephone."\r\n";
$email_to = "myemail@gmail.com";
if(isset($_POST['submit'])){
$mail = new PHPMailer\PHPMailer\PHPMailer;
$mail->isSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->Username = "myemail@gmail.com";
$mail->Password = "password";
$mail->SMTPSecure = "tls";
$mail->Port = 587;
$mail->From = $email_from;
$mail->FromName = $name;
$mail->addAddress($email_to);
$mail->addReplyTo($email_from);
$mail->Subject = "Info";
$mail->Body = $message;
if ($_POST["submit"]){
if(!$mail->send()){
echo "Mailer error: " . $mail->ErrorInfo;
}
else{
echo "Message sent successfully";
}
}
}
既然它给我 HTTP ERROR 500
,我决定查看 GoDaddy 给出的错误日志。这是错误:
[13-Dec-2018 19:33:13 UTC] PHP Fatal error: require_once(): Failed opening required '/home/namesearch/public_html/vendor/composer/autoload_real.php' (include_path='.:/opt/alt/php56/usr/share/pear:/opt/alt/php56/usr/share/php') in /home/namesearch/public_html/vendor/autoload.php on line 5
求助!!!我已经查找了无数解决方案,但我只是不知道如何解决它。我什至尝试将我的路径设置为:/home/namesearch/public_html/vendor/composer/autoload_real.php
和 /home/namesearch/public_html/vendor/composer/autoload.php
但没有任何效果。
我在配置 mustache 时遇到了类似的问题,希望对您有所帮助。我的问题出在这一行:
require_once "vendor/autoload.php";
它没有选择正确的 PHP 包含路径。
将供应商前一级文件夹的绝对路径添加到您的 PHP 包含路径。 将此代码放在 require 之前。
$includePath = get_include_path() . ";ABSOLUTE PATH OF FOLDER ONE LEVEL BELOW VENDOR";
set_include_path($includePath);
我在这里添加@h2oooooo 的评论。这是我刚开始学习作曲时让我抓狂的事情。正如他在上面所说的,确保你已经上传了所有的依赖项,然后更新你的自动加载文件。但是,具体操作方法如下:
1) 转到本地环境中项目的根目录。
2) 然后 运行 composer update
3) 我建议再次上传整个项目,除非你使用 filezilla 文件夹比较来显示哪些文件不同,否则很难确定。
如果您从 git 存储库上传您的项目,请仔细检查您的 .gitignore 文件是否忽略了您的 /vendor 文件夹,默认情况下它经常这样做。