1

Тема: Форма надсилання Email на сайті з PHP

<!DOCTYPE html>
<?PHP ini_set('display_errors', 1);
error_reporting(E_ALL); ?>
<html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
        <form action="submit.php" method="POST">
            <div class="row">
                <h1>Анкетні дані кандидата у члени громадської організації <br>«Файні ябка 57»</h1>
            </div>
            <div class="row">
                <div class="col-md-8 col-md-offset-2">
                    <h2>Прізвище</h2>
                    <input type="text" name="Surname" placeholder="Введіть ваші дані">
                </div>
            </div>
            <div class="row">
                <div class="col-md-8 col-md-offset-2">
                    <h2>Ім'я</h2>
                    <input type="text" name="Name" placeholder="Введіть ваші дані">
                </div>
            </div>
            <div class="row">
                <div class="col-md-8 col-md-offset-2">
                    <h2>По батькові</h2>
                    <input type="text" name="Second_name" placeholder="Введіть ваші дані">
                </div>
            </div>
            <div class="row">
                <div class="col-md-8 col-md-offset-2">
                    <h2>Дата народження</h2>
                    <input type="text" name="Birth_date" placeholder="Введіть ваші дані">
                </div>
            </div>
            <div class="row">
                <div class="col-md-8 col-md-offset-2">
                    <h2>Адреса</h2>
                    <input type="text" name="Addres" placeholder="Введіть ваші дані">
                </div>
            </div>
            <div class="row">
                <div class="col-md-8 col-md-offset-2">
                    <h2>Контакти</h2>
                    <input type="text" name="Contacts" placeholder="Введіть ваші дані">
                </div>
            </div>
            <div class="row">
                <div class="col-md-8 col-md-offset-2">
                    <h2>Освіта</h2>
                    <input type="text" name="Education" placeholder="Введіть ваші дані">
                </div>
            </div>
            <div class="row">
                <div class="col-md-8 col-md-offset-2">
                    <h2>Місце роботи</h2>
                    <input type="text" name="Place_of_work" placeholder="Введіть ваші дані">
                </div>
            </div>
            <div class="row">
                <div class="col-md-8 col-md-offset-2">
                    <p><input type="checkbox">Я підтверджую, що мої дії щодо вступу в громадську організацію «Файні ябка 57» є добровільними, а також надаю свою згоду на обробку, використання та поширення моїх персональних даних відповідно до Закону України «Про захист персональних даних» для реалізації мети та завдань, передбачених Статутом організації.</p>
                </div>
            </div>
            <div class="row">
                <div class="col-md-8 col-md-offset-2">
                    <p><input type="checkbox">Я хочу стати анонімним інвестором</p>
                </div>
            </div>
            <div class="row">
                <div class="col-md-8 col-md-offset-2">
                    <input type="submit" value="Отправить сообщение">
                </div>
            </div>
        </form>
    </body>
</html>

ось файл submit.php

<?PHP
ini_set('display_errors', 1);
error_reporting(E_ALL);
if (!empty($_POST['name']) AND !empty($_POST['email']) AND !empty($_POST['message'])) {
    $headers = 'From: Кротов Роман\r\n' .
               'Reply-To: den19948@gmail.com\r\n' .
               'X-Mailer: PHP/' . phpversion();
    $theme = "Новое сообщение с сайта";
    $letter = "Данные сообщения:";
    $letter .="\n\n";
    $letter .="Имя: ".$_POST['name'];
    $letter .="\nEmail: ".$_POST['email'];
    $letter .="\nТелефон: ".$_POST['phone'];
    $letter .="\nСообщение: ".$_POST['message'];

    if (mail("den19948@gmail.com", $theme, $letter, $headers)){
        header("Location: /testform/thankyou.php");
    } else {
        header("Location: /testform");
    }
} else {
    header("Location: /testform");
}

при натисканні кнопки оправить не відбувається абсолютно ничого, підкажіть будь ласка, де може бути проблема?

2 Востаннє редагувалося 221VOLT (18.03.2017 01:43:58)

Re: Форма надсилання Email на сайті з PHP

чому ви думаєте що

$_POST['name']

та

$_POST['Name']

це одне і те ж?

зробіть var_dump змінних чи print_r($_POST),
подивіться наявні key-value та питання вирішиться само :)

робіть краще провірку на сабміт форми так --

<input type="submit" name="submit" value="Отправить сообщение">

та

if(isset($_POST['submit'])){
//... тут валідація параметрів, додаткові провірки etc
}

крім того, (можливо я помиляюсь чи путаю з іншою мовою програмування)
в php є різниця між '\r\n' та "\r\n" -- здається одна строка запише як текст, інша - як спецсимволи

Подякували: Monolith, varkon2

3

Re: Форма надсилання Email на сайті з PHP

221VOLT написав:

в php є різниця між '\r\n' та "\r\n" -- здається одна строка запише як текст, інша - як спецсимволи

Ні. В першому випадку це буде просто строковий масив, у другому випадку буде опрацьовуватися змінні. У приведеному прикладі краще використовувати перший варіант

Подякували: 221VOLT1

4

Re: Форма надсилання Email на сайті з PHP

varkon написав:
221VOLT написав:

в php є різниця між '\r\n' та "\r\n" -- здається одна строка запише як текст, інша - як спецсимволи

Ні. В першому випадку це буде просто строковий масив, у другому випадку буде опрацьовуватися змінні. У приведеному прикладі краще використовувати перший варіант

точно десь зустрічав інформацію, що окрім змінних в подвійних ще дещо обробляється, а в одинарних - ні
чи то спецсимволи якісь, чи то ще щось ..
можливо то лише по php7 стаття була, не памятаю :)