Как получить все входные данные формы и отправить их по электронной почте? - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть страница формы, которая мне нужна, чтобы собрать все входные данные и отправить их на мою электронную почту.Как мне сделать это, используя только html, css, php или javascript?

вот как выглядит страница https://www.dropbox.com/s/zjhqrldyprrofnl/FORM.PNG?dl=0

вот мой php код

<?php 
$DATE = $_POST['DATE'];
$TIME = $_POST['TIME'];
$NAME = $_POST['NAME'];

$formcontent="From: $NAME \n Message: $DATE and $TIME";
$recipient = "rickyj250@gmail.com";
$subject = "Contact Form";
$mailheader = "From: $NAME \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "<script type='text/javascript'>alert('The Rocco's Team will contact 
you soon!')</script>";
?>

Я пробовал разные типы методов get и actions, но пока не повезло.

Вот HTML-код

<div class="tab-pane fade show active" id="submit" role="tabpanel" aria-labelledby="submit-tab">
         <div class="card-body text-center">

            <br>
            <h5 class="card-title"><u> DATE & TIME </u></h5>
            <h7>Order ready by:</h7>

            <form method="post" action="form.php">
             <div class=" container form-group">
                 <div class="col-12">
                    <input class="form-control" type="date" value="2012-12-12" id="DATE">
                  </div>

                  <div class="col-12">
                    <input class="form-control" type="time" value="13:45:00" id="TIME">
                  </div>
                </div>



              <h5 class="card-title"><u>ENTER INFO</u></h5>

        <div class="container">

            <div class="row" style="justify-content: center;">


                <div class="input-group col-12">
                  <div class="input-group-prepend">
                    <span class="input-group-text" id="NAME">First & Last Name</span>
                  </div>
                  <input type="text" class="form-control">
                  <input type="text" class="form-control">
                </div>


        <div class="container">
            <div class="row">


                <div class="input-group col-12">
                  <div class="input-group-prepend">
                    <span class="input-group-text" id="EMAIL">Email</span>
                  </div>
                  <input type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default">
                 </div>

                </div>

        </div>


                 <div class="input-group col-12">
                  <div class="input-group-prepend">
                  <span class="input-group-text">Phone Number</span>
                 </div>
                    <input class="form-control" type="tel" value="1-(555)-555-5555" id="PHONE">
                  </div>


            </div>
        </div>

        <div class="container">
            <div class="row">

            <div class="form-group col-12"><br>
                <h5 class="card-title"><u>ENTER YOUR ORDER</u></h5>
                <textarea class="form-control" placeholder="# of pizzas and toppings   Type of pasta and sauce    Full or Half Orders    ETC.." id="ORDER" rows="5"></textarea>
              </div>
                </form>

                        </div>
                    </div>

        <div class="container">
            <button type="button" class="btn btn-secondary btn-lg btn-block">Reset</button>
            <button type="submit" class="btn btn-primary btn-lg btn-block">Submit</button>
        </div>
        <br>


                </div> <!-- END OF SUBMIT CARD BODY-->
    </div><!-- END OF SUBMIT FORM-->

Я хочу, чтобы данные формы были отформатированы в упорядоченныйпо электронной почте.

1 Ответ

0 голосов
/ 11 февраля 2019

Прежде всего, вы используете слишком много элементов формы!
(см. этот пост переполнения стека ).

Используйте один тег формы со всем интерфейсом формы (текстовыми областями и кнопками) внутри или с ним.

Кроме того, добавьте type="submit" к кнопке отправки.

ВыВам также нужно будет добавить еще одну строку в ваш PHP-код, чтобы получить значение текстового поля "ORDER".

$ORDER = $_POST['ORDER'];

И затем вы можете добавить это к электронному письму, как хотите.Но нужно учесть еще одну вещь: Эта форма чрезвычайно уязвима и опасна!

Вы принимаете входные данные непосредственно от пользователя (который может быть злонамеренным хакером) и отправляете его прямо на вашу электронную почту.,Это не хорошо!Даже очень неопытный хакер может воспользоваться этим и ввести вредоносный код в поле «ДАТА» (или в любое другое поле) и отправить его.Когда вы открываете электронную почту, wham!Его код выполняется, а хакер совершает свои злые дела на вашем компьютере.Пожалуйста, прочитайте о санации ввода / символов HTML, экранирующих для PHP .В конечном итоге вы должны обернуть $DATE и другие переменные PHP, которые вы взяли из POST, в htmlspecialchars().Например:.

$ORDER = htmlspecialchars($_POST['ORDER']);

Теперь хакеры не могут помещать вредоносный код в поле вашего ЗАКАЗА, так как он будет экранирован и не будет выполнен при открытии электронной почты на вашем компьютере.

W3Schools имеетхорошо объяснение о безопасной обработке ввода из форм.

Также, как вы указали, вам нужно использовать name, а не id для ваших полей ввода (я тоже пропустил это сначала, к сожалению).

Кроме того, убедитесь, что на вашем веб-сервере есть возможность отправки почты .Не у каждого сервера есть такая возможность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...