Предупреждение: require_once (Composer / PHPMailer / vendor / phpmailer / phpmailer / src / autoload. php): не удалось открыть поток: нет такого файла или каталога - PullRequest
0 голосов
/ 17 марта 2020

Я получаю ошибку Предупреждение: require_once (Composer / PHPMailer / vendor / phpmailer / phpmailer / src / autoload. php): не удалось открыть поток: нет такого файла или каталога в / home / hyperspace / public_html / contact. php в строке 5 и Неустранимая ошибка: require_once (): сбой открытия необходим .: / opt / alt / php72 / usr / share / pear ') в /home/hyperspace/public_html/contact.php в строке 5 , у меня нет root доступа к моей cpanel. Вы можете проверить ошибку на 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 находится на моем контакте. 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" alt="" 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 -->

I знаю, что он не будет отправлять письмо, потому что я не изменил свою кнопку отправки для работы с php, но я получаю сообщение об ошибке при загрузке страницы.

Вот так выглядят мои файлы в cpanel: enter image description here

Я использовал composer для установки PHPMailer. В моем файле Composer я установил PHPMailer и все его компоненты. Я ничего не изменил в своем php .ini, так как не знаю, связано ли это с моей ошибкой. Я не знаю, имеет ли это какое-либо отношение ко мне, не имеющему root доступа. Может кто-нибудь, пожалуйста, помогите мне?

1 Ответ

1 голос
/ 17 марта 2020

Вы неправильно используете composer; эта строка неверна:

require_once "Composer/PHPMailer/vendor/phpmailer/phpmailer/src/autoload.php";

Вам необходимо определить файл composer.json для вашего проекта, поэтому предположим, что вы делаете свой проект в /home/hyperspace/public_html (хотя обратите внимание, что наличие библиотеки файлы в твоей сети root вообще плохие). cd в этот каталог и запустите composer require phpmailer/phpmailer. Это создаст файл composer.json, файл composer.lock и папку с именем vendor, содержащую папку PHPMailer и несколько сценариев, один из которых будет называться autoload.php. Затем в вашем скрипте contact.php вы бы загрузили автозагрузчик следующим образом:

require 'vendor/autoload.php';

Если вы не можете запускать команды непосредственно на сервере, делайте все то же самое локально, а затем загружайте всю папку включая папку поставщика.

...