Добрый день! Разбираюсь с несколькими задачами. Чтобы протестировать файлы, нужно установить phpmailer. Я скачала zip https://github.com/PHPMailer/PHPMailer, расзиповала и сохранила в папке Sites (у меня Mac os 10.11), которая используется apache. Не знаю, что теперь делать с папкой phpmailer - нужно ли и как куда-то что-то добавить, чтобы можно было использовать в php коде использовать команду require для прикрепления библиотеки? Я только учусь, поэтому мне пока сложно с подобными задачами. Спасибо большое!
Распакуй его прямо в папку конкретного проекта, и дальше там нужно просто сделать PHP: require " PHPMailerAutoload.php" На гите же всё написано
Спасибо за ответ. То есть я должна сохранить эту папку в папку проекта. верно? Написано там много, я несколько раз прочитала, но я только учусь и все написанное для меня пока еще очень cryptic. ) --- Добавлено --- Еще вопрос: получается, что я эту папку phpmailer должна каждый раз копировать в папку каждого проекта? Как так? Разве эта библиотека не должна лежать где-то в доступе для всех файлов и проектов?
Можно и так, но конкретно в вебе так редко делают. Ведь обычно потом надо загрузить сайт на сервер к заказчику. И учитывай, что php мы (обычно) не компилируем, не компонуем
Еще вопрос: получается, что я эту папку phpmailer должна каждый раз копировать в папку ка Пока не по книге, а онлайн курс. Там в основе был С, а сейчас php, html, mysql, но пока довольно поверхностно.
Плохое начало, мало кто будет делать курс с таким количеством информации как в нескольких книгах примерно страниц 3000 теории, основ, практики.
Почему не работает PHPMailerAutoload.php Сделала следующее: Код (Text): git clone https://github.com/PHPMailer/PHPMailer.git "$HOME/PHPMailer" cd $HOME/PHPMailer Создала файл mail.php Код (Text): <?php require 'PHPMailerAutoload.php'; $mail = new PHPMailer; $mail->SMTPDebug = 3; $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = 'email@gmail.com'; $mail->Password = 'pass'; $mail->SMTPSecure = 'tls'; $mail->Port = 587; $mail->setFrom('email@gmail.com'); $mail->addAddress('email_to@gmail.com'); $mail->isHTML(true); $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body <b>in bold!</b>'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; if(!$mail->send()) { echo 'Message could not be sent.'."\n"; echo 'Mailer Error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent'."\n"; } ?> Код (Text): php mail.php Код (Text): Warning: require(PHPMailerAutoload.php): failed to open stream: No such file or directory in /Users/././mail.php on line 2 Call Stack: 0.0008 233880 1. {main}() /Users/././mail.php:0 Fatal error: require(): Failed opening required 'PHPMailerAutoload.php' (include_path='.:/usr/local/php5/lib/php') in /Users/././mail.php on line 2 Call Stack: 0.0008 233880 1. {main}() /Users/...
нужно в require прописать путь к автолоадеру относительно текущего файла. там просто буквы-точка-пхп - будет искаться в том же каталоге что и текущий файл. на надо либо в подкаталоге либо выше, либо выше-рядом и так далее и тому подобное. либо вообще абсолютную ссылку - /home/(тут подставишь имя своей учетки)/PHPMailer/PHPMailerAutoload.php
В какой папке mail.php, а в какой PHPMailer ? Потом, я предпочитаю использовать полные пути в require, получая из предопределённых констант __DIR__ и __FILE__, а также функции dirname @Ganzal, неужели ты советуешь прописывать путь руками? --- Добавлено --- Чтоб было понятно. К примеру, DOCUMENT ROOT у меня /var/html/user/my-site.ru, в нём лежит index.php, а в папке /var/html/user/my-site.ru/PM у меня phpmailer. Тогда чтоб включить автолоадер phpmailer-а в файле index.php, я напишу PHP: require_once __DIR__ . "/PM/PHPMailerAutoload.php";
я выше композер уже порекомендовал. Остался без внимания. Следовательно, пациент еще слишком молод, чтоб использовать адекватную автозагрузку. Тем более она еще путается в обычной ручной загрузке. Основ не знает. Тонкого тюнинга инклюд-пафа и опен-бейсдира не делала ни разу. Что ей еще советовать, кроме ручной прописи? Ну да, на пальцах разъяснять абсолютные и относительные пути - всё что в наших силах.
нет нет - не без внимания! Простите, что не ответила. Но Вы сейчас все верно написали - я пока не знаю, что такое composer, хотя вижу эти файлы в папке PHPMailer. Спасибо Вам за объяснения и спасибо @mkramer - _DIR_ я уже встречала, но пока не использовала. Сейчас действительно была проблема в том, что я не указала путь в папку PHPMailer, в которой находится PHPMailerAutoload.php. Теперь все работает! Письмо ушло и пришло ) Нет слов как я благодарна помощь. --- Добавлено --- Да нет, в общем мне этот курс дал очень много. Это же совсем начальные знания, ознакомительные, но с практическими заданиями. После окончания курса уже нужно идти дальше, в глубь и выбирать что и как изучать. Еще несколько месяцев назад я даже и помыслить не могла, что смогу читать и немного писать программы на С, php, делать таблицу в Mysql (пусть и элементарную) и многое многое другое. Более того, я вообще не могла представить, что буду хоть немного разбираться в программировании - я вообще из другой сферы была )) Т
@Vitale вот вам две ссылки для старта: http://svyatoslav.biz/misc/psr_translation/ http://getjump.me/ru-php-the-right-way/#site-header Хотя бы прочитайте, даже если на данном этапе многое будет не понятно. Это даст вам общее представление о том, куда двигаться дальше. Там кстати и про composer есть )
Я пока на композер не перешел - тюнинговал инклюд паф. Сейчас это без надобности. По поводу опенбейсдира - он может мне не особо нужен, так как каждый проект крутится на своей виртуалке, но уметь нужно, если вдруг решишь делать проект, который народ будет ставить на массхостинг.