За последние 24 часа нас посетил 21761 программист и 1014 роботов. Сейчас ищут 687 программистов ...

Форма обратной связи

Тема в разделе "PHP для новичков", создана пользователем Уникальный Стас, 12 июл 2019.

  1. Уникальный Стас

    С нами с:
    12 июл 2019
    Сообщения:
    1
    Симпатии:
    0
    Всем Здравствуйте! Нужна скорая помощь в организации работающей форме об. связи . Сайт на Joomla!, шаблон используется с демо-данными, где в custom-модуле прописан html код для обратной связи, в action не указан обработчик, стоит заглушка.
    Код (Text):
    1.  
    2. <form class="Information" action="#">
    3. <div><strong>Get info based on<br /> your study lavel</strong> <input name="full-name" type="text" placeholder="Full name" /> <input name="education-level" type="text" placeholder="Your education level" /> <input name="email" type="email" placeholder="Your e-mail" /> <input type="submit" value="Request information" /></div>
    4. </form>
    Загрузил в шаблон php файл - ничего не работает, письма не приходят, лишь перезагружается страница. В общих настройках параметры указаны верные.
    PHP:
    1. <?php
    2.  
    3. if(isset($_POST['submit'])){
    4. $to = "...@....net"; // Здесь нужно написать e-mail, куда будут приходить письма  
    5. $from = "no-reply@...net"; // Здесь нужно написать e-mail, от кого будут приходить письма, например no-reply(собака)....net
    6.  
    7. /* Указываем переменные, в которые будет записываться информация с формы */
    8. $first_name = $_POST['first_name'];
    9. $message = $_POST['message'];
    10. $email = $_POST['email'];
    11. $subject = "Форма отправки сообщений с сайта .....net";
    12.      
    13. /* Проверка правильного написания e-mail адреса */
    14. if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
    15. {
    16. show_error("<br /> Е-mail адрес не существует");
    17. }
    18.      
    19. /* Переменная, которая будет отправлена на почту со значениями, вводимых в поля */
    20. $mail_to_info@...net = "Здравствуйте!
    21. Было отправлено сообщение с сайта!
    22. Имя отправителя: $first_name
    23. E-mail: $email
    24. Текст сообщения: $message
    25. Чтобы ответить на письмо, создайте новое сообщение, скопируйте электронный адрес и вставьте в поле Кому.";
    26.      
    27. $headers = "From: $from \r\n";
    28.      
    29. /* Отправка сообщения, с помощью функции mail() */
    30. mail($to, $subject, $mail_to_info@....net, $headers . 'Content-type: text/plain; charset=utf-8');
    31. echo "Сообщение отправлено. Спасибо Вам " . $first_name . ", мы скоро свяжемся с Вами.";
    32. echo "<br /><br /><a href='[URL]https://....'>Вернуться[/URL] на сайт.</a>";
    33. }
    34. ?>
    35. <!--Переадресация на главную страницу сайта, через 3 секунды-->
    36. <script language="JavaScript" type="text/javascript">
    37. function changeurl(){eval(self.location="[URL]https://[/URL]....");}
    38. window.setTimeout("changeurl();",3000);
    39. </script>
    От модератора: В следующий раз сам вставляй код через кнопку </> наверху.
     
    #1 Уникальный Стас, 12 июл 2019
    Последнее редактирование модератором: 12 июл 2019
  2. twim32

    twim32 Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    275
    Симпатии:
    58
    В джумле есть специальный класс для отправки писем

    Сначала подключаем джумлу и инициализируем

    Код (Text):
    1. define('_JEXEC', 1);
    2. define('JPATH_BASE', '../../../');
    3. require_once JPATH_BASE . 'includes/defines.php';
    4. require_once JPATH_BASE . 'includes/framework.php';
    5.  
    6. $app = JFactory::getApplication('site');
    7. $input = $app->input;
    Отправка почты идет следующим образом:

    Код (Text):
    1. $mailer = JFactory::getMailer();
    2. $mailer->setSender(почта отправителя, имя отправителя);
    3. $mailer->addRecipient(почта получателя);
    4. $mailer->setSubject(тема письма);
    5. $mailer->setBody(тело письма);
    6. $mailer->isHTML();
    7. $result = $mailer->send();
    eval() - зло, перепиши функцию