php

Як надіслати дані HTML-форми на email за допомогою PHP

Last updated: 21.02.2026
Views: 588

Відправка форми на електронну пошту є важливим і поширеним способом спілкування з користувачем веб-ресурсу. Давайте напишемо просту форму для відпправки даних на email за допомогою функції PHP mail(). Наша форма також записуватиме дані у файл на сервері. Код не прив’язаний до жодної CMS і може використовуватися де завгодно. Важливо, щоб на вашому хостингу була включена функція mail().

<?php 
if(isset($_POST['spam']) && isset($_POST['submit']) && !$_POST['spam']){
 
    //departure date
    $date = date('d-m-Y H:i');
    //the value from the name field is limited to 100 characters
    $field_name = substr(htmlspecialchars(trim($_POST['name'])), 0, 100);
    //the value of the message field is limited to 1000 characters
    $field_message = substr(htmlspecialchars(trim($_POST['message'])), 0, 1000);
 
    $to = "user@example.com"; //to
    $subject = "Data from the feedback form";
    //text of the letter
    $msg = "Name: $field_name
    \nMessage: $field_message";
 
    $headers = 'From: webmaster@example.com'; // from
 
    mail($to, $subject, $msg, $headers);//send the letter
 
    //create a string to write to the file on the server
    $file_msg = "$date Name: $field_name; Message: $field_message;\n";
 
    //write data to file
    file_put_contents(__DIR__ . '/mail.txt', $file_msg, FILE_APPEND); 
 
    echo '<p>Thank you for your message</p>';
}
 
?>
<form method="post" action="">
    <input type="text" name="name" placeholder="Name*" required>
    <textarea name="message" placeholder="Message*" required></textarea>
    <input type="hidden" name="spam" value="">
    <input type="submit" value="Send" name="submit">
</form>

Відправляємо лист на адресу user@example.com. У значенні “from” бажано вказати поштову скриньку з поточного домену. Дані записуються у файл mail.txt. Поля у формі були встановлені як обов’язкові за допомогою атрибута “required”. Поле “spam” забезпечить захист від спам-ботів, але мінімальний. Обробник форми знаходиться за поточною адресою. Після успішної відправки відображаємо повідомлення подяки.

У вашій реалізації ви можете зберігати дані в базі даних, а не записувати їх у файл. Ви також можете перемістити обробник запитів в окремий файл.

author
Автор: Ігор Рибалко
Працюю фронтенд розробником з 2014 року. Основний стек технологій - Vue.js і WordPress

Схожі записи:

  • Як видалити скрипт jQuery Migrate з WordPress
    Якщо ваш проект WordPress використовує jQuery, то за замовчуванням WordPress також завантажує скрипт jQuery Migrate разом із ним. У 99% випадків вам насправді цей скрипт ...
  • Ітерація елементів масиву без циклу
    Приклади дуже абстрактні, оскільки цикли існують. Наша умова буде такою. Потрібно вибрати всі елементи масиву за заданим атрибутом. Або, якщо сказати точніше, потрібно ві...
  • Кешування даних у файл за допомогою PHP
    Іноді виникає необхідність обмежити кількість запитів до зовнішнього джерела даних. Особливо якщо вони не змінюються постійно. Наприклад, курс валют в центральному банку....

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *