Простая форма обратной связи по электронной почте

Я внедряю простую форму ввода электронной почты в заставку для отправки.

Я знаю, что мне нужна форма сообщения, и html полностью реализован (я думаю) для этого:

<div id="main">
    <form method="post" action="">
        <div id="text">
            Please enter your email address here, and we will get back to you
        </div>
        <input type="text" name="q" id="search" />
        <input type="submit" name="submit" id="submit" value="Go!" />
    </form>
</div>

Мой css выглядит следующим образом:

#main input {
    margin: 30px auto auto 130px ;
    positiom: absolute;
    font-size: 18px;
    background: #fff;
    border: 3px;
    padding: 6px;
    z-index: 3;  
   }
#search {
    float: left;
    width: 550px;
   }
#submit {
    position: relative;
    width: 60px;
    margin: 130px auto auto 200px ;
   }
#submit::-moz-focus-inner { 
    border: 0;
    padding: 0;
}

У меня есть веб-сервер с установленным apache, php и т. д., и я пытаюсь выяснить, что делать дальше, чтобы завершить мою форму. Я бы хотел, чтобы это функционировало как форма, которая отправляет отдельные электронные письма на определенную учетную запись gmail каждый раз, когда кто-то вводит свой адрес. Нужны ли мне для этого дополнительные инструменты помимо веб-сервера? Я читал на многочисленных сайтах о сторонних формах, которые проходят через их сайты, но я беспокоюсь о безопасности и предпочел бы, чтобы мой сайт передавал все данные. Любая помощь очень ценится, спасибо!


person user686327    schedule 06.04.2011    source источник


Ответы (2)


Вам нужен PHP-скрипт для обработки отправки электронной почты. В вашем HTML измените действие:

<form method="post" action="sendmail.php">

И создайте файл sendmail.php с:

<?php

$email = addcslashes($_REQUEST['q']) ;

mail( "[email protected]", "E-Mail entered",
"E-Mail entered: $email");
header( "Location: http://www.example.com/thankyou.html" );
?>

Отредактировано: добавлены addclash()

person Raisen    schedule 06.04.2011
comment
Если вы пойдете по этому пути, а вы должны это сделать, обязательно очистите все свои данные! Никогда не работайте только со значениями, напрямую извлеченными из $_POST / $_GET и т. д. - person Josh; 06.04.2011
comment
Итак, я ближе, чем я думал! Когда вы говорите дезинфицировать, что вы имеете в виду? =р - person user686327; 06.04.2011
comment
Чтобы избежать инъекций. Злоумышленник может добавить некоторые символы в качестве своего адреса электронной почты, что может привести к плохим результатам. Я бы использовал addcslashes() или urlencode() - person Raisen; 06.04.2011
comment
Ок, отлично! А метод заголовка — это перенаправление, которое указывает пользователю на следующую страницу? - person user686327; 06.04.2011

Рассматривали ли вы возможность использования PHPMailer?

person Alexander Högberg    schedule 06.04.2011
comment
Я читал об этом, но не слышал, насколько он хорош - его довольно легко реализовать? - person user686327; 06.04.2011