Создание собственной формы обратной связи

ЗАКРЫТО InstantCMS 2.X
#1 16 июня 2023 в 13:40

Привет.  Есть задачка создать некий квиз с использованием формы обратной связи. С конструктором форм это будет очень проблематично,  и данную возможность оставляю на самый запасной вариант.

Тестирую самописную форму на сайте.

  1. <?
  2. if(isset($_POST['submit'])){
  3. $email = $_POST['email']; // Получаем адрес электронной почты отправителя
  4. $number = $_POST['number'];
  5. $to = 'ko@bk.ru'; // Замените на адрес получателя
  6.  
  7. $subject = 'Новое сообщение с сайта';
  8. $message = "Адрес электронной почты: $email\nНомер: $number";
  9. $headers = "From: $email";
  10.  
  11. if(mail($to, $subject, $message, $headers)){
  12. echo 'Сообщение успешно отправлено.';
  13. } else{
  14. echo 'Ошибка при отправке сообщения.';
  15. }
  16. }
  17. ?>
  18.  
  19. <!-- HTML-код формы на вашем сайте -->
  20. <form method="POST" action="">
  21. <input type="email" name="email" placeholder="Адрес электронной почты" required>
  22. <input type="text" name="number" placeholder="Номер" required>
  23. <input type="submit" name="submit" value="Отправить">
  24. </form>

Вставляю ее просто  в шаблон виджета для проверки, к сожалению это не работает. При отправке стандартной формы из самого движка  используется почтовый транспорт php mail проблем с отправкой нет.  Кто что посоветует?  Было бы круто привязать эту форму к движку  и проверить post запросы.  Но опыта в этом маловато, буду рад советам.

При проверке форма успешно отправлена, но увы почта пуста.

#2 16 июня 2023 в 16:04

Попробуйте после if(isset($_POST['submit'])){ написать dump($_POST); и посмотреть есть ли там вообще данные в post

Если там нечего нет, попробуйте в action указать ссылку на текущую страницу <form method=«POST» action=«ССЫЛКА»>

А так советую получать get, post данные так

  1. $emal = $this->request->get('email');
  2.  
  3. $test = $this->request->get('ИМЯ_ПОЛЯ', 'ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ');
#3 16 июня 2023 в 16:42

Попробуйте после if(isset($_POST['submit'])){ написать dump($_POST); и посмотреть есть ли там вообще данные в post

Если там нечего нет, попробуйте в action указать ссылку на текущую страницу <form method=«POST» action=«ССЫЛКА»>

А так советую получать get, post данные так

  1. $emal = $this->request->get('email');
  2.  
  3. $test = $this->request->get('ИМЯ_ПОЛЯ', 'ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ');
My-InstantCMS.Ru

Большое спасибо, сейчас потестирую этот вариант. Я кстати решил вопрос с помощью PHPMailer используя гугл SMTP авторизация идет через приложение Создание пароля к приложению https://myaccount.google.com/apppasswords?utm_source=google-account&utm_medium=myaccountsecurity&utm_campaign=tsv-settings&rapt=AEjHL4PiA4bGprwX29fujnVHofvyIFJEbiQxhFWPP-2wwGqhaM9DbRejvICWIKHxv4st3XNF0eAfy_0x9f0VMRbOA9UIp8UGNw   мало ли кому будет интересно, ссылка переехала очень долго искал. 

Отпишусь попохже тогда еще.

#4 20 июня 2023 в 14:40

 KoRn, мне странно видеть такой код у фрилансера, у которого заявлено 

Анализ кода
Безопасность сайта

#5 22 июня 2023 в 14:33

 KoRn, мне странно видеть такой код у фрилансера, у которого заявлено 

Анализ кода
Безопасность сайта

IamB

О, в нашей жизни много странностей уважаемый IamB. Если перечислять то и жизни не хватит)). Но, спасибо за критику.

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.