PHPMailer autoload.php не удается открыть - PullRequest
0 голосов
/ 13 декабря 2018

В настоящее время у меня есть веб-сайт на 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, но ничего не работает.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Я добавляю комментарий от @ h2oooooo здесь.Это то, что привело меня в бешенство, когда я впервые начал учиться композитору.Как он сказал выше, убедитесь, что вы загрузили все свои зависимости, а затем обновите файлы автозагрузки.Но вот как это сделать:

1) Перейдите в корень вашего проекта в вашей локальной среде.2) Затем запустите composer update 3) Я рекомендую просто загрузить весь проект еще раз, если вы не используете сравнение файлов в filezilla, чтобы показать, какие файлы отличаются, вам будет сложно узнать наверняка.

Если вы 'повторно загрузите ваш проект из репозитория git, затем дважды проверьте, что ваш файл .gitignore не игнорирует папку / vendor, как это часто происходит по умолчанию.

0 голосов
/ 13 декабря 2018

У меня была похожая проблема с настройкой усов, поэтому я надеюсь, что это поможет.Моя проблема была с этой строкой:

require_once "vendor/autoload.php";

Не удалось подобрать правильный путь включения PHP.

Добавьте абсолютный путь к папке за один уровень до того, как поставщик добавит в ваш путь включения PHP.Разместите этот код прямо перед требованием.

$includePath = get_include_path() . ";ABSOLUTE PATH OF FOLDER ONE LEVEL BELOW VENDOR";
set_include_path($includePath);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...