Форма обратной связи на PHP

Форум для тех кто начинает осваивать язык php.
Аватара пользователя
Владимир
Сообщения: 37

Форма обратной связи на PHP

Сообщение Владимир » Пт июн 20, 2014 3:10 pm

Привет! Ребят, необходимо простенькая форма обратной связи на PHP.
В ней должны быть поля:
  • Имя пользователя (отправителя).
  • Эл. почта отправителя.
  • Поле для ввода текста.
Напишите, пожалуйста или покажите пример, как это делать. За Вашу работу готов заплатить.
Спасибо.
Реклама
Аватара пользователя
greendev
Сообщения: 79

Re: Форма обратной связи на PHP

Сообщение greendev » Пт июн 20, 2014 9:49 pm

Привет! Вот пример.

Код: Выделить всё

<html>
<head>
<title>Обратная связь</title></head>
<body>
<?php
//Проверяется, отправлена ли форма
if ($_POST['sent']==1)
{
//Отображение введенных данных
echo '<br>Ваше имя:' .$_POST['name'];
echo '<br>Ваш e-mail адрес:' .$_POST['email'];
echo '<br>Текст сообщения:' .$_POST['mtext'];

//Если какое-то поле не заполненно, то выдается сообщение
if (!$_POST['name']){echo "<br> Пожалуйста, заполните поле Имя";unset($_POST['sent']);}
if (!$_POST['email']){echo "<br> Пожалуйста, укажите e-mail";unset($_POST['sent']);}
if (!$_POST['mtext']){echo "<br> Пожалуста, оставьте сообщение";unset($_POST['sent']);}
if ($_POST['name'] AND $_POST['email'] AND $_POST['mtext'])
{
//Формируем Е-мэйл в виде HTML
$message = "<html><head>";
$message .= "<p>Имя:";
$message .= $_POST['name'];
$message .= "<br>E-mail:";
$message .= $_POST['email'];
$message .= "<br> Текст сообщения:<br>";
$message .= $_POST['mtext'];
$message .= "</p></body></html>";

//Формируем заголовок для E-mail'a
$header = "\n Content-Type: text\html";

//При успешной отправке выдается сообщение об этом, иначе выдается сообщение об ошибке
if (mail("YourAdress@mail.ru", "Это письмо с моего веб-сайта", $message, $header) )
{
echo "Письмо отправлено.";
}
else
{
echo "Письмо не отправлено.Повторите еще раз.";
unset($_POST['sent']);
}
}
}
if (!$_POST['sent'])
{
?>
<!-- Сама форма -->
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<!-- Создание скрытого поля, для проверки отправлено ли сообщение -->
<input type="hidden" name="sent" value="1">
<!-- С помощью htmlentities будут корректно обрабатываться спецсимволы -->
Имя: <input type="text" name="name" value="<?php echo htmlentities($_POST['name']); ?>" size="20"><br>
E-mail: <input type="text" name="email" value="<?php echo htmlentities($_POST['email']); ?>" size="20"><br>
Текст сообщения: <br><textarea cols="50" rows="5" name="mtext"><?php echo $_POST['mtext']; ?></textarea><br>
<input type="submit" name="submit" value="Отправить">
</form>
<?php } ?>
</body>
</html>
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Форма обратной связи на PHP

Сообщение Slash » Сб июн 21, 2014 6:06 pm

Такой вариант:
PHP скрипт (назвал файл: mail.php):

Код: Выделить всё

<?php
$info = isset($info) ? $info : null;

if (isset($_POST['submit']))
{
    if (empty($_POST['name']))
    {
        $info = 'Вы не ввели своё имя';
    }
    elseif (empty($_POST['email']))
    {
        $info = 'Вы не ввели свою эл. почту.';
    }
    elseif (empty($_POST['message']))
    {
        $info = 'Вы не ввели текст сообщения.';
    }
    else
    {
        $my_email = 'Почта получателя'; #Тут вписываем свою почту
        $name = $_POST['name'];
        $email = $_POST['email'];
        $message = $_POST['message'];
        mail($my_email, $name, $message, 'From:'.$email);
        
        $info = 'Сообщение отправлено!';
    }    
}
?>

Форма:

Код: Выделить всё

<?=$info;?>
<form action="mail.php" method="post">
    Ваше имя: <input type="text" name="name"><br />
    Ваша эл. почта: <input type="text" name="email"><br />
    Текст сообщения: <br><textarea name="message"></textarea><br />
    <input type="submit" name="submit" value="Отправить">
</form>

Владимир писал(а):За Вашу работу готов заплатить.

Не стоит! :)

Вернуться в «PHP»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость